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 |