Comment tester une expression XPath
- Collez votre XML, ouvrez un fichier ou utilisez le catalogue de produits d’exemple.
- Saisissez une expression XPath ou cliquez sur l’un des exemples. Le résultat se met à jour pendant la saisie, et Entrée l’évalue immédiatement.
- Lisez le résultat : le nombre de nœuds correspondants avec leur type et leur contenu, ou le nombre, la chaîne ou le booléen renvoyé par l’expression.
Aide-mémoire XPath
| Expression | Sélectionne |
|---|---|
/catalog | L’élément racine catalog |
//product | Tous les éléments product, à n’importe quelle profondeur |
/catalog/product/name | Le name de chaque produit, étape par étape depuis la racine |
//product/@id | L’attribut id de chaque produit |
//product[@category='books'] | Les produits dont l’attribut category vaut books |
//product[price > 20] | Les produits dont le prix dépasse 20, comparé numériquement |
//product[contains(name, 'USB')] | Les produits dont le nom contient « USB » (sensible à la casse) |
//product[not(tags)] | Les produits sans enfant tags |
(//product)[1] | Le premier produit du document |
//product[1] | Le premier produit de chaque élément parent |
//product[last()] | Le dernier produit de chaque élément parent |
//name/text() | Les nœuds texte contenus dans name |
//price/.. | L’élément parent de chaque price |
//*[local-name()='product'] | Les éléments product de n’importe quel espace de noms |
count(//product) | Le nombre de produits |
sum(//price) | La somme de tous les prix |
string(//product[1]/name) | Le nom du premier produit sous forme de chaîne |
Les espaces de noms dans XPath
XPath 1.0 ne connaît pas d’espace de noms par défaut. Dans un document avec xmlns="…", comme un sitemap ou une facture NF-e, //url ne trouve rien, car les éléments appartiennent à cet espace de noms. Le testeur associe donc l’espace de noms par défaut au préfixe x: (ou d: si x est déjà pris), de sorte que //x:url/x:loc fonctionne. Les préfixes déclarés dans le document, comme cfdi: dans une facture CFDI, s’utilisent tels quels. Dans les outils sans configuration des espaces de noms, //*[local-name()='url'] fonctionne partout.
Questions fréquentes
Quelle version de XPath le testeur prend-il en charge ?
XPath 1.0, la version intégrée à tous les navigateurs et à la plupart des bibliothèques XML. Les fonctions de XPath 2.0 et des versions ultérieures, comme matches(), lower-case() ou string-join(), ne sont pas disponibles.
Pourquoi mon XPath ne renvoie-t-il rien ?
Les causes les plus fréquentes sont un espace de noms par défaut (utilisez le préfixe x: indiqué sous les exemples), une différence de majuscules et minuscules – XPath est sensible à la casse – et les positions, qui commencent à 1 et non à 0.
Combien de résultats sont affichés ?
Toutes les correspondances sont comptées, et les 500 premières sont listées avec leur type de nœud et leur contenu.
Mon XML est-il envoyé sur un serveur ?
Non. Le XML est analysé et interrogé dans votre navigateur. Seule une URL que vous chargez est récupérée via notre serveur.