Testeur XPath
Document XML ou HTML
Collez du XML ou du HTML jusqu'à 1 000 000 de caractères. L'évaluation s'effectue dans ce navigateur avec XPath 1.0.
XPath 1.0 absolu ou relatif. Les préfixes déclarés dans le document sont enregistrés automatiquement ; l'espace de noms par défaut est disponible sous le préfixe d.
Écrire du XPath pour du scraping ou du XSLT relève du tâtonnement sans bac à sable en direct. Ce testeur reçoit votre XML ou HTML dans un panneau et votre expression dans un autre, évalue le XPath 1.0 avec le moteur de votre propre navigateur et liste chaque nœud trouvé avec son type, ses attributs, son contenu textuel et son balisage sérialisé. Les expressions scalaires comme count(//book) renvoient directement leur valeur, et les préfixes d’espaces de noms déclarés dans le document sont enregistrés pour vous. Tout s’exécute dans votre navigateur : le document n’est jamais téléversé.
Comment tester une expression XPath
-
1
Collez du XML ou du HTML
La détection automatique bascule vers une analyse HTML tolérante dès qu'elle voit un doctype ou une racine HTML ; vous pouvez aussi forcer le mode XML ou HTML.
-
2
Saisissez votre XPath
Absolue (`/library/book`) ou relative (`//div[@class='card']`), toute expression XPath 1.0.
-
3
Évaluez
Le moteur XPath de votre navigateur exécute la requête en local ; rien n'est envoyé à un serveur.
-
4
Inspectez les résultats
Chaque correspondance affiche le type de nœud, les attributs, le texte tronqué et le balisage sérialisé ; jusqu'à 200 correspondances sont listées.
L’essentiel de XPath 1.0
| Expression | Ce qu’elle sélectionne |
|---|---|
/books/book |
Les <book> enfants de la racine <books> |
//book |
Chaque <book> n’importe où dans le document |
//book[@id='42'] |
Les <book> dont l’attribut id vaut 42 |
//book[1] |
Le premier <book> de chaque parent (pas du doc.) |
(//book)[1] |
Le premier <book> de tout le document |
//book[title='1984'] |
Les <book> dont le texte de <title> est « 1984 » |
//book/@id |
Les attributs id de tous les éléments <book> |
//book[position() > 1] |
Tous les <book> sauf le premier |
//book[last()] |
Le dernier <book> de chaque parent |
Les expressions scalaires fonctionnent aussi : count(//book) renvoie un nombre, string(//title) une chaîne et boolean(//book[@id]) vrai ou faux. Le testeur affiche ces valeurs directement au lieu d’une liste de nœuds.
Les axes courants au-delà de child
ancestor::, tous les ancêtresfollowing-sibling::, les frères situés après le nœud courantpreceding-sibling::, les frères situés avantdescendant::, tous les descendantsattribute::(raccourci@), les attributs du nœud courantparent::(raccourci..), l’élément parent
Particularités du HTML
Le HTML n’est pas du XML strict, le testeur l’analyse donc avec tolérance grâce à l’analyseur HTML de votre navigateur plutôt qu’avec l’analyseur XML strict. Le mode HTML est détecté automatiquement à partir de <!DOCTYPE html> ou d’une racine <html>, et le sélecteur de mode de document vous permet de forcer l’un ou l’autre mode. En mode HTML, les noms de balises et d’attributs sont mis en minuscules : écrivez donc votre XPath en minuscules, //div[@class] et non //DIV[@CLASS].
Espaces de noms
Le XML avec espaces de noms exige l’enregistrement des préfixes :
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/">
<item>
<content:encoded>...</content:encoded>
</item>
</rss>
Le testeur parcourt le document à la recherche des déclarations xmlns et enregistre chaque préfixe automatiquement : //content:encoded fonctionne donc sans rien faire. Un espace de noms par défaut (un simple xmlns="...") n’a pas de préfixe dans le document, le testeur le lie donc au préfixe d : sélectionnez les <item> d’un flux à espace de noms par défaut avec //d:item. Les espaces de noms enregistrés sont listés à côté des résultats.
Ce que ce testeur n’évalue pas
Les navigateurs évaluent XPath 1.0, le dialecte utilisé par la plupart des outils de scraping. Les fonctionnalités de XPath 2.0 et ultérieur, comme matches(string, regex), tokenize(string, delimiter), les expressions for ... return et les opérateurs de séquences, n’en font pas partie ; vous les trouverez dans les chaînes d’outils XSLT 2.0/3.0. XPath 1.0 reste le choix le plus portable pour le scraping web.
Conseils pour vos tests
- Commencez large, puis affinez. D’abord
//div, puis//div[@class], puis la valeur précise de la classe. - Vérifiez les déclarations d’espaces de noms. La plupart des « pourquoi mon XPath ne renvoie rien ? » viennent des espaces de noms ; consultez la liste des espaces de noms enregistrés.
- Attention à la casse. XML est sensible à la casse. Le mode HTML met les noms en minuscules.
- Testez string() pour extraire du texte.
//p/text()etstring(//p)diffèrent dès qu’il y a du balisage imbriqué.
Questions fréquentes
Non, uniquement XPath. La plupart des navigateurs prennent en charge les deux via document.querySelectorAll (CSS) et document.evaluate (XPath). Utilisez celui qui est le plus clair pour la tâche.
L’analyse HTML met les noms de balises et d’attributs en minuscules. Vérifiez que votre XPath est en minuscules : //div[@class] et non //DIV[@CLASS]. Vérifiez aussi le mode : forcer XML sur du HTML approximatif échoue avec une erreur d’analyse, tandis que le mode HTML l’analyse avec tolérance.
Les préfixes déclarés dans le document sont enregistrés automatiquement pour votre expression. Un espace de noms par défaut est lié au préfixe d, si bien que //d:item sélectionne les éléments <item> d’un document à espace de noms par défaut. Les liaisons actives sont listées avec les résultats.
Non. Le document et l’expression sont évalués par le moteur XPath de votre propre navigateur et ne sont ni envoyés à notre serveur, ni stockés, ni ajoutés à l’adresse de la page ; ils ne vivent que dans la session de ce navigateur afin que la vue en plusieurs étapes puisse afficher vos résultats.
Outils similaires
Référence de la table ASCII
Table ASCII complète de 0 à 127 avec décimal, hexadécimal, octal, binaire et référence numérique HTML pour chaque caractère, y compris les codes de contrôle comme NUL, LF et DEL.
Référence des caractères HTML
Liste consultable des entités HTML, de leurs codes nommés et numériques, et un copier-coller en un clic pour les caractères et symboles spéciaux.
Générateur de lettres aléatoires
Générez des lettres A-Z aléatoires. Choisissez le nombre, les majuscules, les minuscules ou le mélange, puis utilisez le résultat pour des jeux ou la classe.
Convertisseur Base64 en hexadécimal
Convertissez une chaîne Base64 standard en ses octets sous-jacents, écrits en hexadécimal majuscule continu. Décodage strict, idéal pour les jetons, les clés et les signatures JWT.
Générateur de palettes de couleurs aléatoires
Générez des palettes aléatoires de 2 à 15 couleurs, choisissez un style vif, pastel, sourd ou sombre, puis copiez les codes HEX ou les variables CSS.
Générateur d’accordéon CSS
Créez un accordéon de trois sections avec details et summary. Personnalisez textes, couleurs, espacements, icône et ouverture, puis copiez ou téléchargez le code.