Derniers tutoriels de développement web
 

Syntaxe XPath


XPath utilise des expressions de chemin pour sélectionner des noeuds ou des ensembles de nœuds dans un document XML. Le noeud est choisi en suivant un chemin ou étapes.


Le XML Exemple de document

Nous utiliserons le document XML suivant dans les exemples ci-dessous.

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

<book>
  <title lang="en">Harry Potter</title>
  <price>29.99</price>
</book>

<book>
  <title lang="en">Learning XML</title>
  <price>39.95</price>
</book>

</bookstore>

Sélection de nœuds

XPath utilise des expressions de chemin pour sélectionner des nœuds dans un document XML. Le noeud est choisi en suivant un chemin ou étapes. Les expressions de chemin les plus utiles sont énumérés ci-dessous:

Expression La description
nodename Sélectionne tous les nœuds avec le nom « nodename »
/ Sélectionne à partir du nœud racine
// Sélectionne les noeuds dans le document à partir du nœud actuel qui correspondent à la sélection, peu importe où ils sont
. Sélectionne le noeud courant
.. Sélectionne le parent du noeud courant
@ Sélectionne les attributs

Dans le tableau ci-dessous, nous avons énuméré quelques expressions de chemin et le résultat des expressions:

Expression Path Résultat
librairie Sélectionne tous les nœuds avec le nom "bookstore"
/librairie Sélectionne la librairie de l'élément racine

Note: Si le chemin commence par une barre oblique ( / ) , il représente toujours un chemin absolu à un élément!

librairie / livre Sélectionne tous les éléments du livre qui sont les enfants de la librairie
//livre Sélectionne tous les éléments du livre, peu importe où ils se trouvent dans le document
librairie // livre Sélectionne tous les éléments du livre qui sont descendant de l'élément de librairie, peu importe où ils sont sous l'élément de librairie
// @ lang Sélectionne tous les attributs qui sont nommés lang

prédicats

Les prédicats sont utilisés pour trouver un noeud spécifique ou un noeud qui contient une valeur spécifique.

Les prédicats sont toujours intégrés entre crochets.

Dans le tableau ci-dessous, nous avons énuméré quelques expressions de chemin avec prédicats et le résultat des expressions:

Expression Path Résultat
/ Librairie / livre [1] Sélectionne le premier élément de livre qui est l'enfant de l'élément de librairie.

Note: Dans IE 5,6,7,8,9 premier noeud est [0], mais selon W3C, il est [1]. Pour résoudre ce problème dans IE, réglez le SelectionLanguage à XPath:

In JavaScript: xml . setProperty("SelectionLanguage","XPath") ;
/ librairie / livre [ last() ] Sélectionne le dernier élément de livre qui est l'enfant de l'élément de librairie
/ librairie / livre [ last() -1] Sélectionne le dernier élément, mais un livre qui est l'enfant de l'élément de librairie
/ librairie / livre [ position() <3] Sélectionne les deux premiers éléments du livre qui sont des enfants de l'élément de librairie
// titre [@lang] Sélectionne tous les éléments de titre qui ont un attribut nommé lang
// titre [@ lang = 'fr'] Sélectionne tous les éléments de titre qui ont un attribut « lang » avec une valeur de "en"
/bookstore/book[price>35.00] Sélectionne tous les éléments du livre de l'élément de librairie qui ont un élément de prix d'une valeur supérieure à 35,00
/bookstore/book[price>35.00]/title Sélectionne tous les éléments de titre des éléments comptables de l'élément de librairie qui ont un élément de prix d'une valeur supérieure à 35,00

Sélection de nœuds inconnus

wildcards XPath peuvent être utilisés pour sélectionner des noeuds XML inconnus.

wildcard La description
* Correspond à tout noeud d'élément
@* Correspond à tout noeud d'attribut
node() Correspond à tout noeud de toute nature

Dans le tableau ci-dessous, nous avons énuméré quelques expressions de chemin et le résultat des expressions:

Expression Path Résultat
/librairie/* Sélectionne tous les nœuds d'élément enfant de l'élément de librairie
// * Sélectionne tous les éléments dans le document
//Titre[@*] Sélectionne tous les éléments de titre qui ont au moins un attribut de toute nature

Sélection de plusieurs chemins

En utilisant le | opérateur dans une expression XPath, vous pouvez sélectionner plusieurs chemins.

Dans le tableau ci-dessous, nous avons énuméré quelques expressions de chemin et le résultat des expressions:

Expression Path Résultat
// livre / title | // livre / prix Sélectionne tous les éléments de titre et le prix de tous les éléments du livre
// titre | //prix Sélectionne tous les éléments de titre et le prix dans le document
/ Librairie / livre / title | //prix Sélectionne tous les éléments de titre de l'élément comptable de l'élément de librairie et tous les éléments de prix dans le document