[xpath & php]

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Ik ben bezig met een systeem waar een random banner uit xml wordt gehaald.

xml:

XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<banners>
    <ads>10</ads>
    <rubriek>somerubriek</rubriek>
    <banner plaatsing="1" id="1">
        <campaign>campaign_name</campaign>
        <src>http://bannerurl.nl/banner</src>
        <type>java</type>
        <width>0</width>
        <height>0</height>
    </banner>
    <banner plaatsing="2" id="2">
        <campaign>campaign_name</campaign>
        <src>http://bannerurl.nl/banner</src>
        <type>java</type>
        <width>0</width>
        <height>0</height>
    </banner>
...
</banners>


In de xml zitten gemiddeld 10 banners bovenstaande sml voorbeel dgeeft dan ook niet alles weer.

nu wil ik alle id's terug krijgen met behulp van php, simplexml en xpath die voldoen aan een waarde in de atribuut plaatsing...

PHP:
1
 $ban->xpath('//banner[@plaatsing=\'1\']');


Zorgt er voor dat ik alle banners terug krijg met de plaatsing atribuut met de waarde 1
maar ik wil een array terug van de banner id's van alle banner met atribuut plaatsing 1...

kan dat in één regel met xpath?

Zijn er verder nog erg goede xpath tutorials op Internet.

gr en thanks,
Auke.

  • dik_voormekaar
  • Registratie: April 2003
  • Laatst online: 15-09 21:32
Zoiets als:
PHP:
1
$ban = $xml->xpath('/banners/banner/@id');

Uitleg over de xpath syntax op W3Schools

[ Voor 45% gewijzigd door dik_voormekaar op 10-09-2009 14:34 ]


Verwijderd

Topicstarter
dik_voormekaar schreef op donderdag 10 september 2009 @ 14:24:
Zoiets als:
PHP:
1
$ban = $xml->xpath('/banners/banner/@id');

Uitleg over de xpath syntax op W3Schools
ja, dan krijg ik inderdaad de id atribuut terug, maar dan van alle banners.
I wil alleen de id's terug van de banners waar de waarde van het atribuut @plaatsing 1 is.

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
PHP:
1
$ban->xpath('//banner[@plaatsing=\'1\']/@id');

Zoiets? Mijn XPath is redelijk rusty.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Verwijderd

Topicstarter
Got it!

PHP:
1
$ban = $xml->xpath('//banner[@plaatsing=\'1\']/@id');


simpel... :X

Verwijderd

Topicstarter
Grijze Vos schreef op donderdag 10 september 2009 @ 14:45:
PHP:
1
$ban->xpath('//banner[@plaatsing=\'1\']/@id');

Zoiets? Mijn XPath is redelijk rusty.
Juist Grijze Vos, dat is hem...
Ben nog wat aan het rommelen hoor.
ik heb de juiste gegevens maar toch denk ik dat alles nog wat sneller/ slimmer kan.

Thanks!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 27-07 10:18
Hoe kan bovenstaande nou nog sneller / slimmer dan? Het is niet alsof dit een enorme load is :)

Engineering is like Tetris. Succes disappears and errors accumulate.

Pagina: 1