Contexte des expressions XPath
L'évaluation d'une expression XPath dépend du contexte dans lequel cette expression opère. Le contexte se compose du nœud par rapport auquel l'expression est évaluée et de l'environnement qui y est associé, comprenant :
la position du nœud de contexte dans l'ordre du document, par rapport à ses frères ;
la taille du contexte (le nombre de frères du nœud de contexte plus 1) ;
les liaisons de variable avec lesquelles les références à une variable peuvent être résolues ;
une bibliothèque de fonctions ;
les déclarations d'espaces de noms dans la portée de l'expression.
Pour mieux apprécier le concept de contexte, considérez une arborescence contenant des nœuds. Demander tous les nœuds nommés X de la racine de l'arborescence retourne un ensemble de résultats, tandis que demander les mêmes nœuds pour une branche de l'arborescence retourne un ensemble différent de résultats. Le résultat d'une expression dépend donc du contexte dans lequel elle s'exécute.
Des expressions XPath peuvent correspondre à des modèles spécifiques dans un contexte particulier, retourner les résultats et effectuer des opérations supplémentaires en fonction du contexte des nœuds retournés. Cela confère aux expressions XPath une extraordinaire flexibilité dans la recherche au sein de l'arborescence du document.
Expressions XPath de base
Les types de base des expressions XPath sont les suivants : Chacun de ces types est décrit plus bas.
Contexte actuel
Racine du document
Élément racine
Descendant récursif
Élément spécifique
Exemples
Voici quelques exemples d'expressions XPath de base. Des expressions plus complexes peuvent être obtenues en combinant ces expressions simples et en utilisant divers opérateurs et caractères spéciaux XPath.
Contexte actuel
Une expression précédée d'un point et d'une barre oblique (./) utilise explicitement comme contexte le contexte actuel. Par exemple, l'expression suivante fait référence à tous les éléments<author>
dans le contexte actuel :./author
Notez que cette expression est équivalente à la suivante :
author
Racine du document
Une expression précédée d'une barre oblique (/) utilise comme contexte la racine de l'arborescence du document. Par exemple, l'expression suivante fait référence à l'élément<bookstore>
à la racine de ce document :/bookstore
Élément racine
Une expression qui utilise une barre oblique suivie d'un astérisque (/*) utilise comme contexte l'élément racine. Par exemple, l'expression suivante trouve l'élément racine du document :/*
Descendant récursif
Une expression qui utilise une barre oblique double (//) indique une recherche qui inclut zéro, un ou plusieurs niveaux de hiérarchie. Lorsque cet opérateur apparaît au début du modèle, le contexte est relatif à la racine du document. Par exemple, l'expression suivante fait référence à tous les éléments<author>
partout dans le document actuel ://author
Le préfixe .// indique que le contexte commence au niveau de la hiérarchie indiqué par le contexte actuel.
Éléments spécifiques
Une expression qui commence par un nom d'élément fait référence à une requête de l'élément spécifique, à partir du nœud de contexte actuel. Par exemple, l'expression suivante fait référence à l'élément<background.jpg>
à l'intérieur de l'élément<images>
dans le nœud de contexte actuel :images/background.jpg
L'expression suivante fait référence à l'ensemble d'éléments
<book>
à l'intérieur des éléments<bookstore>
dans le nœud de contexte actuel :bookstore/book
L'expression suivante fait référence à tous les éléments
<first.name>
dans le nœud de contexte actuel :first.name
Notes
Les noms d'éléments peuvent inclure le point (.). Ces noms peuvent être utilisés juste comme tout autre nom.
Contexte dans le DOM
Lorsque des expressions XPath sont utilisées avec le DOM Microsoft XML, le contexte est l'objet Node dont la méthode selectNodes ou selectSingleNode est appelée.
Lorsque XPath est utilisé directement depuis le DOM, vous définissez le contexte à partir d'un nœud particulier.
Contexte dans XSLT
Lorsque XPath est utilisé directement depuis le XSLT, vous définissez le contexte par le nœud actuel.
Autres ressources
Pour plus d'informations, voir le document sur le langage XPath (XML Path Language), version 1.0, (recommandation du W3C du 16 novembre 1999) à l'adresse www.w3.org/TR/xpath.