Partager via


É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 est child::. 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.

ms256472.note(fr-fr,VS.100).gifRemarque :
É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

child::*[position()=1]

Localise le premier nœud enfant du nœud de contexte

ancestor-or-self::book[@catdate="2000-12-31"]

Localise tous les ancêtres d'un enfant <book> du nœud de contexte, ainsi que l'enfant <book> lui-même, pour autant que l'élément en question possède un attribut catdate de valeur "2000-12-31".

//parent::node()[name()="book"] | descendant::node()[name()="author"]

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 ».

Voir aussi

Référence

Axes
Tests de nœuds
Prédicats