Étapes de localisation
Une étape de localisation sélectionne une collection de nœuds (node-set) par rapport au nœud de contexte.
Une étape de localisation se compose de trois parties : un axe facultatif, un test de nœud et un prédicat facultatif. La syntaxe d'une étape de localisation est le nom de l'axe suivi de deux signes deux-points, du test de nœud et de zéro, un ou plusieurs prédicats, chacun entre crochets. La forme la plus basique de cette syntaxe est la suivante :
axis::nodetest[predicate]
- axis
Spécifie la relation d'arborescence entre le nœud de contexte et les nœuds que l'étape de localisation doit sélectionner. En d'autres termes, l'axe indique la direction générale de l'étape de localisation à partir du nœud de contexte. Dans une étape de localisation, l'axe est facultatif. S'il est omis, l'axe par défaut estchild::
. De plus, plusieurs axes possèdent des raccourcis ; par exemple, l'arobase (@
) est un raccourci de l'axe d'attribut.
- nodetest
Spécifie le type de nœud ou le nom développé des nœuds que l'étape de localisation doit initialement sélectionner. Autrement dit, le test de nœud indique, parmi tous les nœuds de l'axe spécifié, celui ou ceux à considérer comme des candidats, c'est-à-dire des correspondances potentielles pour l'étape de localisation.
- prédicat
Utilise une expression XPath (condition requise) pour affiner davantage la collection de nœuds sélectionnée par l'étape de localisation. Le prédicat est un filtre, spécifiant un critère de sélection pour affiner davantage la liste des nœuds candidats. Le prédicat est facultatif. S'il n'y a pas de prédicat, l'étape de localisation ne comprend pas de crochets ([
et]
).
Sélection de nœuds
La collection de nœuds sélectionnée par une étape de localisation découle de la génération d'une collection de nœuds initiale basée sur la relation entre l'axe et le test de nœud, et du filtrage de cette collection de nœuds initiale à l'aide de chaque prédicat.
La collection de nœuds initiale est composée des nœuds qui satisfont aux deux critères suivants :
la relation des nœuds avec le nœud de contexte correspond à celle spécifiée par l'axe ;
le type et le nom développé des nœuds correspondent à ceux spécifiés par le test de nœud.
XPath utilise ensuite le premier prédicat de l'étape de localisation pour filtrer la collection de nœuds initiale afin de générer une nouvelle collection de nœuds. Puis, il utilise le deuxième prédicat pour filtrer la collection de nœuds résultant du premier prédicat. Ce processus de filtrage se répète jusqu'à ce que XPath ait évalué tous les prédicats. La collection de nœuds résultant de l'application de tous les prédicats est celle choisie par l'étape de localisation.
Remarque : |
---|
Étant donné que l'axe affecte l'évaluation de l'expression dans chaque prédicat, la sémantique d'un prédicat est définie en fonction de l'axe spécifié. |
Le tableau suivant montre des exemples d'étape de localisation utilisant la syntaxe complète.
Étape de localisation | Description |
---|---|
|
Localise le premier nœud enfant du nœud de contexte |
|
Localise tous les ancêtres d'un enfant |
|
Localise n'importe quel nœud du document dont le nœud parent s'appelle « book » ou n'importe quel nœud descendant du nœud de contexte dont le nom est « author ». |