Axes (Axe) XPath

Document d'exemple XML

Nous allons utiliser ce document XML dans les exemples suivants :

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>

  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>

  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>
</bookstore>

Axe XPath

L'axe peut définir un ensemble de noeuds par rapport au noeud courant. Résultat
Nom de l'axe ancestor
Sélection de tous les ancêtres (parent, grand-parent, etc.) de l'élément courant. ancestor-or-self
Sélection de tous les ancêtres (parent, grand-parent, etc.) de l'élément courant ainsi que de l'élément courant lui-même. Sélection de toutes les propriétés de l'élément courant.
attribute Sélection de tous les éléments enfants de l'élément courant.
child descendant
Sélection de tous les éléments descendants (fils, petits-fils, etc.) de l'élément courant. descendant-or-self
Sélection de tous les éléments descendants (fils, petits-fils, etc.) de l'élément courant ainsi que de l'élément courant lui-même. following
Sélection de tous les noeuds après la balise de fin de l'élément courant dans le document. namespace
Sélection de tous les noeuds namespace de l'élément courant. parent
Sélection du noeud parent de l'élément courant. preceding
Sélection de tous les noeuds avant la balise de début de l'élément courant dans le document. preceding-sibling
Sélection de tous les noeuds frères antérieurs au noeud courant. self

Sélection du noeud courant.

Expression du chemin de position

Le chemin de position peut être absolu ou relatif.

Le chemin absolu commence par une barre oblique inversée ( / ), tandis que le chemin relatif ne le fait pas. Dans les deux cas, le chemin de position inclut un ou plusieurs étapes, et chaque étape est séparée par une barre oblique :

/step/step/...

Chemin relatif :

step/step/...

Chaque étape est calculée en fonction des noeuds du jeu de noeuds courant.

L'étape (step) inclut :

Axe (axis)
Définir la relation d'arbre entre le noeud sélectionné et le noeud courant
Test de noeud (node-test)
Identifier les noeuds à l'intérieur d'un axe donné
Zéro ou plusieurs prédicats (predicate)
Affiner davantage le jeu de noeuds sélectionnés

Grammaire des étapes :

Nom de l'axe::noeud test[prédicat]

Instance

Exemple Résultat
child::book Sélection de tous les éléments book appartenant aux éléments enfants de l'élément courant.
attribute::lang Sélection de la propriété lang de l'élément courant.
child::* Sélection de tous les éléments enfants de l'élément courant.
attribute::* Sélection de toutes les propriétés de l'élément courant.
child::text() Sélection de tous les noeuds enfants textuels de l'élément courant.
child::node() Sélection de tous les noeuds enfants de l'élément courant.
descendant::book Sélectionnez tous les descendants book de l'élément courant.
ancestor::book Sélectionnez tous les ancêtres book de l'élément courant.
ancestor-or-self::book Sélectionnez tous les ancêtres book de l'élément courant ainsi que l'élément courant (si cet élément est un élément book)
child::*/child::price Sélectionnez tous les descendants price de l'élément courant.