par
Hubert Roksor » 06 mars 2007, 19:18
Je viens de faire un test rapide, une fois de plus XPath nous rend les choses
extrêmement simples.
$xml = simplexml_load_string('<root>
<item id="1">
<enclosure url="..." />
</item>
<item id="2">
<enclosure />
</item>
<item id="3">
<!-- no enclosure -->
</item>
</root>');
foreach ($xml->xpath('item[enclosure/@url]') as $item)
{
echo $item['id'], "\n";
}
Donc si je ne me trompe pas,
item[enclosure] renverra tous les nœuds "item" qui possèdent un descendant "enclosure" et
item[enclosure/@url] fait la même chose à condition que le "enclosure" ait un attribut "url".
PS: pour les attributs, j'utilise les indices de tableaux (merci SimpleXML).
Je viens de faire un test rapide, une fois de plus XPath nous rend les choses [b]extrêmement simples[/b].
[php]$xml = simplexml_load_string('<root>
<item id="1">
<enclosure url="..." />
</item>
<item id="2">
<enclosure />
</item>
<item id="3">
<!-- no enclosure -->
</item>
</root>');
foreach ($xml->xpath('item[enclosure/@url]') as $item)
{
echo $item['id'], "\n";
}[/php]
Donc si je ne me trompe pas, [b]item[enclosure][/b] renverra tous les nœuds "item" qui possèdent un descendant "enclosure" et [b]item[enclosure/@url][/b] fait la même chose à condition que le "enclosure" ait un attribut "url".
PS: pour les attributs, j'utilise les indices de tableaux (merci SimpleXML).