Skip to main content
CheckTown
Outils Dev

XPath Tester : interroger des documents XML avec XPath

Publié le 6 min de lecture
Dans cet article

Qu'est-ce que XPath ?

XPath (XML Path Language) est un langage de requete standardise par le W3C pour selectionner des noeuds dans des documents XML. Il utilise une syntaxe de type chemin pour naviguer dans la structure hierarchique d'un arbre XML, en selectionnant des elements, attributs et noeuds texte selon leur position, nom ou valeur.

XPath n'est pas une technologie autonome -- il est integre dans d'autres standards comme XSLT, XQuery et les API DOM. Tous les navigateurs modernes supportent XPath pour interroger des documents HTML, et des outils comme Selenium, Scrapy et lxml utilisent abondamment les expressions XPath pour le scraping web et les tests automatises.

Comment fonctionnent les requetes XPath

Une expression XPath navigue dans l'arbre du document en utilisant des axes (directions), des tests de noeuds (filtres) et des predicats (conditions). Comprendre ces trois concepts permet de construire n'importe quelle requete.

  • Axes et chemins -- / selectionne depuis la racine, // selectionne les descendants partout, .. remonte au parent, et les axes nommes comme following-sibling:: naviguent relativement au noeud courant
  • Predicats et filtres -- les crochets [] ajoutent des conditions : //book[price>30] selectionne les livres dont le prix depasse 30, tandis que //div[@class='main'] selectionne les div avec un attribut de classe specifique
  • Fonctions et operateurs -- XPath fournit des fonctions integrees comme contains(), starts-with(), normalize-space() et count() pour la manipulation de chaines, la comparaison et le comptage de noeuds

Essayez gratuitement — sans inscription

Tester une requete XPath →

Quand utiliser XPath

XPath est essentiel chaque fois que vous devez extraire des donnees specifiques de documents XML ou HTML par programmation.

  • Scraping web -- extrayez des prix de produits, titres d'articles ou liens de pages web avec des expressions XPath dans des outils comme Scrapy, Puppeteer ou les consoles developpeur des navigateurs
  • Configuration XML -- interrogez et validez des fichiers de configuration complexes comme Maven pom.xml, les manifestes Android ou les contextes Spring XML pour trouver des parametres ou dependances specifiques
  • Transformations XSLT -- selectionnez des noeuds a transformer dans les feuilles de style XSLT, qui reposent entierement sur les expressions XPath pour faire correspondre et traiter les elements XML en differents formats de sortie

Foire aux questions

Quand utiliser XPath plutot que les selecteurs CSS ?

Les selecteurs CSS sont plus simples et plus rapides pour la selection basique d'elements par balise, classe ou ID. Choisissez XPath quand vous devez selectionner par contenu textuel (//a[contains(text(),'Connexion')]), naviguer vers les noeuds parents, utiliser des predicats complexes ou travailler avec des documents XML (pas HTML). XPath est aussi requis dans les contextes XSLT et XQuery.

Qu'est-ce qui a change entre XPath 1.0 et 2.0 ?

XPath 2.0 a ajoute un systeme de types plus riche (dates, sequences, expressions regulieres), des expressions conditionnelles (if/then/else), des expressions quantifiees (some/every) et des expressions de plage. Cependant, la plupart des navigateurs et outils de scraping ne supportent que XPath 1.0. Utilisez les fonctionnalites de XPath 2.0 dans des outils cote serveur comme Saxon ou avec XSLT 2.0.

Comment gerer les espaces de noms XML dans XPath ?

Les elements avec espace de noms necessitent un mappage de prefixe. Dans la plupart des API, vous enregistrez un prefixe d'espace de noms (ex. ns='http://example.com') puis interrogez avec ce prefixe : //ns:book/ns:title. Sans enregistrer l'espace de noms, //book ne correspondra pas aux elements dans un espace de noms meme si le nom local est 'book'. Certains outils supportent local-name() comme alternative : //*[local-name()='book'].

Outils associés