Il existe deux types de chemin d'emplacement - absolu et relatif. Les chemins absolus commencent au niveau d'un point de référence fixe - le noeud racine. Les chemine relatifs commencent au niveau d'un point variable - un noeud de contexte.
Un chemin d'emplacement renvoie un ensemble de noeuds correspondant à une collection de noeuds (toute partie d'un document XML, tel qu'un élément, un attribut, un espace de nom ou un commentaire). Les chemins d'emplacement sont constitués d'étapes d'emplacement. Chaque étape comprend deux parties :
Une étape d'emplacement ressemble à ceci :
axis: node-test
Les étapes d'emplacement peuvent être combinées en les séparant par des barres obliques. Chaque étape dans le chemin d'emplacement résultant définit le noeud de contexte pour le prochain chemin dans l'étape.
Pour accéder aux options de référence de syntaxe, cliquez sur l'onglet Référence dans l'assistant d'expression XPath.
Chaque étape d'emplacement XPath se déplace le long d'un axe à partir d'un noeud de contexte. Par exemple, si vous sélectionnez enfant comme axe, votre expression XPath effectue une recherche sur tous les enfants du noeud de contexte.
Axis | Emplacement dans lequel les noeuds sont recherchés |
---|---|
ancestor:: | Noeud racine et tous les noeuds d'élément contenant le noeud de contexte. |
ancestor-or-self :: | Tous les ancêtres du noeud de contexte, ainsi que le noeud lui-même. |
attribute:: | Tous les attributs du noeud de contexte. |
child:: | Tous les enfants du noeud de contexte. Les noeuds d'attribut et d'espace de nom ne sont pas des enfants de n'importe lequel des noeuds, bien qu'ils aient des noeuds parents. Il s'agit de la valeur par défaut. |
descendant:: | Tous les noeuds contenus au sein d'un noeud de contexte, c'est-à-dire, n'importe quel enfant ou enfant d'enfant, etc. Seuls les noeuds d'élément et racine ont des descendants. De même que l'axe enfant, l'axe descendant ne contient jamais de noeuds d'espace de nom ou d'attributs. |
descendant-or-self:: | Tout descendant d'un noeud de contexte ou le noeud de contexte lui-même. |
following:: | Tous les noeuds qui commencent après les fins de noeud de contexte, excepté pour les noeuds d'espace de nom et les noeuds d'attribut. |
following-sibling:: | Tous les noeuds qui suivent la fin du noeud de contexte et ayant le même noeud parent. Les noeuds d'attribut et d'espace de nom n'ont pas d'éléments apparentés. |
namespace:: | Tous les espaces de nom dans la portée du noeud de contexte. |
parent:: | Noeud élément ou racine contenant immédiatement le noeud de contexte. Seul le noeud racine ne possède pas de noeud parent. |
preceding:: | Tous les noeuds qui se terminent avant le début du noeud de contexte, excepté pour les noeuds d'espace de nom et les noeuds d'attribut. |
preceding-sibling:: | Tous les noeuds qui précèdent le début du noeud de contexte et ayant le même noeud parent. Les noeuds d'attribut et d'espace de nom n'ont pas d'éléments apparentés. |
self:: | Noeud de contexte lui-même. |
Chaque étape d'emplacement possède au moins un axe et un test de noeud. Le test de noeud affine encore plus les noeuds sélectionnés par l'étape d'emplacement. Par exemple, si vous spécifiez child:: comment( ) comme étape d'emplacement, votre expression XPath renvoie tous les enfants de noeud de commentaire du noeud de contexte.
Noeud | Ce qu'il renvoie |
---|---|
* | Sélectionne tous les éléments sans tenir compte du nom. Par exemple, child::* sélectionne tous les enfants élément du noeud de contexte et attribute::* sélectionne tous les attributs du noeud de contexte. |
comment ( ) | Tous les noeuds de commentaire. |
node( ) | Tous les noeuds, sans considération de type. |
processing-instruction ('target' ) | Sans arguments, renvoie toutes les instructions de traitement. Avec un argument de chaîne unique target, il sélectionne toutes les instructions de traitement ayant la cible spécifiée. |
text( ) | Tous les noeuds de texte. Par exemple, child::text() sélectionne tous les enfants de noeud de texte du noeud de contexte. |
Ensemble de noeuds
Opérateur | Fonction |
---|---|
| | Opérateur d'union. Il prend deux ensembles de noeuds et combine tous les noeuds ensemble (après avoir supprimé tous les noeuds en double). |
/ | Sélectionne tous les noeuds enfants. |
// | Sélectionne tous les noeuds descendant. |
Booléen
Opérateurs booléens pouvant être utilisés pour comparer des expressions numériques ou de chaîne ou des valeurs booléennes.
Opérateur | Retours |
---|---|
<= | true si la valeur de la première expression numérique est inférieure ou égale à la valeur de la seconde, sinon false. |
< | true si la valeur de la première expression numérique est inférieure à la valeur de la seconde, sinon false. |
>= | true si la valeur de la première expression numérique est supérieure ou égale à la valeur de la seconde, sinon false. |
> | true si la valeur de la première expression numérique est supérieure à la valeur de la seconde, sinon false. |
= | True si les deux expressions (chaîne ou numérique) ont la même valeur, sinon false. |
!= | true si les deux expressions (chaîne ou numérique) n'ont pas la même valeur, sinon false. |
and | True si les valeurs booléennes sont vraies, sinon false. |
or | False uniquement si les deux valeurs sont fausses, sinon true. |
Nombre
Ces opérateurs peuvent être utilisés pour manipuler des valeurs numériques.
Opérateur | Retours |
---|---|
+ | Somme de deux expressions de nombre. |
- | Différence de la première expression numérique moins la seconde. |
* | Produit de deux expressions numériques. |
div | Première expression numérique divisée par la seconde expression. |
mod \ | Première expression numérique modulo la seconde expression (le résultat est le reste). |