SimpleXML: obtenir des nœuds enfants
<?xml version="1.0" encoding="utf-8" ?>
<items>
<aaa>
</aaa>
<aaa>
</aaa>
<aaa>
<bbb>
</bbb>
<bbb>
</bbb>
<bbb>
<ccc>
Only this childnod what I need
</ccc>
<ccc>
And this one
</ccc>
</bbb>
</aaa>
</items>
Je veux parser le XML en tant que donnée ci-dessus avec PHP. Je ne sais pas comment obtenir ces deux nœuds enfants.
Lorsque j'utilise le code ci-dessous, il déclenche l'erreur: Warning: main() [function.main]: Cannot add element bbb number 2 when only 0 such elements exist in
<?php
header('Content-type:text/html; charset=utf-8');
$xml = simplexml_load_file('2.xml');
foreach ($xml->aaa[2]->bbb as $bbb){
echo $bbb[2]->$ccc; //wrong in here
echo $bbb[3]->$ccc;
}
?>
OriginalL'auteur cj333 | 2011-08-02
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas comment utiliser le retour de simplexml, mais de ce que j'ai vu à partir de votre code, cela devrait fonctionner:
Vous n'avez mélanger avec les éléments. Voir le commentaire de imoda.
OriginalL'auteur Jens Struwe
Utilisation xpath
Résultat:
Aussi, dans votre première tentative,
$bbb[3]
n'a pas de sens parce que vous avez trois articles seulement, en commençant par l'index 0.OriginalL'auteur brian_d
Plus dynamique de la solution
count
la$ccc
enfant hochement de tête, puisbreak
etecho out
ce dont j'ai besoin.OriginalL'auteur Steve Robbins