Il existe beaucoup d'axes disponibles. Une liste complète se trouve à cette adresse
Voici les plus courants :
Voici un XML d'exemple sur lequel les exemples XPath sont basés
<?xml version="1.0" encoding="UTF-8"?>
<biblio>
<livre>
<!-- classique -->
<titre lang="fr">Harry Potter</titre>
<prix>29.99</prix>
</livre>
<livre>
<titre lang="fr">Apprendre XML</titre>
<prix>39.95</prix>
<!-- pas donné! -->
</livre>
</biblio>
Vous l'utilisez à chaque fois que vous ne spécifiez pas d'axe. Ce dernier renvoi tout les éléments enfants de l'élément courant
/child::biblio/child::livre/child::titre/child::text()
ou bien (plus clair quand même):
/biblio/livre/titre/text()
Renvoi :
Harry Potter
Apprendre XML
Descendant recherche, comme son nom l'indique, dans tout les descendants du nœud sélectionné.
Il est utile pour chercher un nœud profond par exemple.
C'est aussi l'axe utilisé quand vous utilisez la syntaxe "//qqchose" équivalente à /descendant::qqchose
/descendant::livre/descendant::text()
ou bien :
//livre//text()
Renvoi :
\n\t\t
Harry Potter
\n\t\t
29.99
\n\t
\n\t\t
Apprendre XML
\n\t\t
39.95
\n\t\t
\n\t\t
\n\t
Attribute est l'axe qui permet de sélectionner, comme son nom l'indique, un attribut XML.
Attribute est l'axe utilisé avec la syntaxe "@"
/biblio/livre/titre/attribute::lang
ou bien (plus clair quand même):
/biblio/livre/titre/@lang
Renvoi :
fr