2010-11-28 8 views
1

Débutant XML ici!
J'ai un fichier contenant uniquement le code XML suivant:Comment utiliser SimpleDOM sortedXPath pour trier la valeur de noeud?

<tags> 
<tag>orange</tag> 
<tag>apple</tag> 
<tag>banana</tag> 
</tags> 

Je veux ouput les balises par ordre alphabétique.
J'essaie d'utiliser la bibliothèque SimpleDOM et sa méthode sortedXPath. Voici ce que j'ai jusqu'à présent, qui sort les tags non triés.

$allTags = simpledom_load_file("tags.xml"); 
foreach ($allTags->sortedXPath("//tags/tag", "tag") as $i => $item) 
{ 
    echo($item); 
} 

Quelqu'un pourrait me dire comment écrire correctement pour que cela fonctionne? À votre santé!

Répondre

1

En XPath, vous pouvez consulter le noeud courant (appelé « noeud contextuel ») en utilisant un seul point . donc si vous accédez à //tags/tag vous devez utiliser . pour obtenir la valeur de tag. Votre exemple devient:

$allTags = simpledom_load_file("tags.xml"); 
foreach ($allTags->sortedXPath("//tags/tag", ".") as $i => $item) 
{ 
    echo($item); 
} 
+0

Merci beaucoup! Cela a fait le tour parfaitement. – Kerans