Voir :
Syntaxe normale | Syntaxe abrégée | Signification |
---|---|---|
child::UneBalise | UneBalise | sélectionne tous les sous-éléments définis à l'aide de la balise en question |
child::UneBalise[position()=i] | UneBalise[i] | sélectionne le i-ème sous-élément défini à l'aide de la balise en question |
child::* | * | sélectionne tous les sous-éléments |
child::text() | text() | sélectionne tous les descendants directs de type texte simple |
child::node() | sélectionne tous les descendants directs, qu'ils représentent des sous-éléments, des attributs ou du texte simple | |
attribute::UnNom | @UnNom | sélectionne l'attribut portant le nom indiqué |
attribute::* | @* | sélectionne tous les attributs définis dans le contexte courant |
descendant::UneBalise | .//UneBalise | sélectionne tous les descendants de l'élément courant définis à l'aide de la balise en question |
ancestor::UneBalise | sélectionne tous les ancêtres de l'élément courant définis à l'aide de la balise en question | |
self::UneBalise | sélectionne le noeud courant s'il est défini à l'aide de la balise en question, sinon ne sélectionne rien | |
following-sibling::x | sélectionne tous les éléments définis avec la balise x, qui se trouvent après le noeud courant et qui sont les descendants directs du même parent que le noeud courant | |
preceding-sibling::x | sélectionne tous les éléments définis avec la balise x, qui se trouvent avant le noeud courant et qui sont les descendants directs du même parent que le noeud courant | |
child::x="y" | x="y" | sélectionne tous les sous-éléments définis à l'aide de la balise x et dont le contenu est la chaîne de caractères y |
parent::node() | .. | sélectionne l'ancêtre immédiat (parent) |
/ | sélectionne la racine du document (qui est le parent de l'élément constituant le document) |
Ces fragments peuvent être combinés. Exemples :
Syntaxe | Syntaxe abrégée | Signification |
---|---|---|
child::x/descendant::y | x//y | sélectionne les éléments définis avec la balise y parmi les descendants des éléments définis avec la balise x qui sont eux-mêmes descendants directs du noeud courant |
child::*/child::x | */x | sélectionne les descendants de niveau 2 du noeud courant qui sont définis avec la balise x |
/descendant::x | //x | sélectionne tous les éléments définis avec la balise x dans le document courant |
child::*[attribute::a="UneValeur"][position()=2] | *[@a="UneValeur"][2] | sélectionne le deuxième descendant direct à avoir un attribut nommé a dont la valeur est UneValeur |
child::x[child::y] | x[y] | sélectionne, parmi les descendants directs définis avec la balise x, ceux ayant au moins un descendant direct défini avec la balise y. |
/descendant::*="x"[position()=1] | //*="x"[1] | sélectionne le premier noeud dont le contenu est x |
D'une manière générale, expr1[expr2] permet de sélectionner les noeuds répondants au critère de expr1 pour lesquels le critère expr2 s'applique.