Exemples XPath
Essayons d'apprendre une syntaxe XPath de base en regardant quelques exemples.
L'exemple de document XML
Nous utiliserons le document XML suivant dans les exemples ci-dessous.
"livres.xml":
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="web">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
Affichez le fichier "books.xml" dans votre navigateur .
Chargement du document XML
L'utilisation d'un objet XMLHttpRequest pour charger des documents XML est prise en charge dans tous les navigateurs modernes.
var xmlhttp = new XMLHttpRequest();
Le code pour les anciens navigateurs (IE5 et IE6) peut être trouvé dans le tutoriel AJAX.
Sélection de nœuds
Malheureusement, il existe différentes manières de gérer XPath dans différents navigateurs.
Chrome, Firefox, Edge, Opera et Safari utilisent la méthode évalue() pour sélectionner des nœuds :
xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE,null);
Internet Explorer utilise la méthode selectNodes() pour sélectionner le nœud :
xmlDoc.selectNodes(xpath);
Dans nos exemples, nous avons inclus du code qui devrait fonctionner avec la plupart des principaux navigateurs.
Sélectionnez tous les titres
L'exemple suivant sélectionne tous les nœuds de titre :
Exemple
/bookstore/book/title
Sélectionnez le titre du premier livre
L'exemple suivant sélectionne le titre du premier nœud de livre sous l'élément bookstore :
Exemple
/bookstore/book[1]/title
Sélectionnez tous les prix
L'exemple suivant sélectionne le texte de tous les nœuds de prix :
Exemple
/bookstore/book/price[text()]
Sélectionnez les nœuds de prix avec le prix> 35
L'exemple suivant sélectionne tous les nœuds de prix avec un prix supérieur à 35 :
Exemple
/bookstore/book[price>35]/price
Sélectionnez les nœuds de titre avec le prix> 35
L'exemple suivant sélectionne tous les nœuds de titre avec un prix supérieur à 35 :
Exemple
/bookstore/book[price>35]/title