Aller au contenu

Testeur XPath

XPath Tester

Évalue une expression XPath ou un sélecteur CSS sur du XML ou du HTML et liste tous les nœuds trouvés.

Exécute une expression XPath 1.0 ou un sélecteur CSS sur un document XML ou HTML et montre chaque nœud correspondant, avec le chemin absolu de chacun. L'évaluation est celle du navigateur : ce que vous voyez ici est ce que `document.evaluate` fera dans votre code.

🔒 Fonctionne entièrement dans votre navigateurxpathxmlselectortest

Expression XPath 1.0

Langage de requête

Document

Lire comme

Déposez un fichier

Lu uniquement dans cet onglet.

Résultats

Les résultats apparaissent ici au fur et à mesure que vous tapez.

Comment cela tourne

  • · L’évaluation passe par le document.evaluate (XPath 1.0) et le querySelectorAll du navigateur lui-même. Le typage du résultat — ensemble de nœuds, nombre, chaîne, booléen —, le chemin absolu de chaque nœud et la gestion des préfixes d’espace de noms viennent de cet outil.
  • · Le mode XML lit strictement et signale ce qui ne va pas ; le mode HTML lit avec souplesse, comme le fait un navigateur. HTML normalise les noms de balises en minuscules, donc //DIV ne passe pas, alors que //div passe.
  • · Dans un document avec un espace de noms par défaut (xmlns="…"), un nom sans préfixe ne correspond à rien : c’est la règle de XPath 1.0. Utilisez le préfixe _ comme dans //_:item.
  • · Les fonctions de XPath 2.0 et 3.x (matches, ends-with, lower-case) n’existent dans aucun navigateur. contains·starts-with·translate·normalize-space sont ce que donne la 1.0.
  • · Le document est lu uniquement dans cet onglet et n’est envoyé nulle part.

Pour du JSON, le testeur JSONPath ou le playground jq est l’outil qu’il faut.

Comment s’en servir

  1. Choisissez comment le document est lu

    Le mode XML est strict et signale ce qui est mal formé. Le mode HTML est permissif comme l'est un navigateur, et normalise les noms de balises en minuscules.

  2. Écrivez l'expression

    XPath ou un sélecteur CSS — l'interrupteur choisit lequel. Les boutons d'exemples couvrent les attributs, les prédicats, les espaces de noms, les nœuds de commentaire et les fonctions qui renvoient un scalaire.

  3. Lisez d'abord le type du résultat

    XPath renvoie quatre sortes de choses, et une seule est un ensemble de nœuds. `count()`, `string()` et `boolean()` vous donnent une valeur unique, affichée seule plutôt que comme une liste de correspondances vide.

Questions fréquentes

Mon expression ne correspond à rien et le document a l'air correct.

C'est presque sûrement un espace de noms par défaut. Si le document porte `xmlns="…"` sur sa racine, XPath 1.0 dit qu'un nom sans préfixe ne correspond à rien du tout — il faut lier un préfixe. Ici ce préfixe est `_`, donc `//item` devient `//_:item`.

Pourquoi `matches()` n'existe-t-il pas ?

Parce que les navigateurs n'implémentent que XPath 1.0. `matches`, `ends-with`, `lower-case` et les autres sont arrivés en 2.0, qu'aucun navigateur n'a. La boîte à outils de la 1.0, c'est `contains`, `starts-with`, `translate` et `normalize-space`.

XPath ou CSS — lequel utiliser ?

CSS est plus court et suffit pour la plupart du scraping. XPath sait remonter (`..`, `ancestor::`), s'appuyer sur le contenu textuel, et renvoyer des nombres et des chaînes, ce qu'aucun sélecteur ne sait faire. Cette page exécute les deux pour que vous puissiez les comparer sur le même document.

Va-t-il chercher une page pour moi ?

Non. Vous collez ou déposez le document et il est lu dans cet onglet. Aller le chercher demanderait un proxy — le navigateur n'autorise pas une page à lire une autre origine — et ce proxy verrait tout ce que vous testez.

À alimenter depuis

Ensuite

Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.