Outils XML

testeur XPathcomprendre les correspondances réelles

Évaluez avec le bouton ou Ctrl/Cmd+Enter. Relancez après toute modification des entrées, des associations ou de la vue.

testeur XPath

Entrée XML

Résultat

Le XML et les requêtes sont traités dans ce navigateur ; aucun document n’est envoyé au serveur.

Utilisez un préfixe ASCII, par exemple {"b":"urn:books"} ; il peut différer du préfixe source.

XPath 1.0 ; exécution manuelle avec Ctrl/Cmd+Enter. Les scalaires JSON sont des chaînes pour conserver NaN et Infinity.

Résultat périmé : réévaluez avant d’exporter.

Un testeur XPath est utile lorsqu’une requête fonctionne sur un exemple mais ne trouve rien dans le vrai flux XML. L’espace de noms par défaut, une condition sur un attribut ou la profondeur d’un élément expliquent souvent cet écart.

Vous pouvez évaluer XPath sans reformater le document. Chaque expression XPath utilise le texte d’origine, ce qui permet de comparer les valeurs et les espaces de noms XML sans perdre les blancs significatifs.

Pourquoi utiliser ce testeur XPath ?

Comparer les branches sélectionnées

Ce testeur XPath présente les mêmes titres comme fragments XML, valeurs textuelles ou chemins absolus. On distingue ainsi la sélection d’un élément de l’extraction de son contenu, sans réécrire la source.

Deux branches de titre sélectionnées dans un arbre XML deviennent deux résultats.

Associer les noms à leur URI

Associez b à urn:books et utilisez //b:book, même si le document emploie un autre préfixe. Les éléments portant le même nom local dans un autre espace restent distincts.

Deux groupes de nœuds de même nom dans des espaces différents ; seul le groupe associé est sélectionné.

Trois détails qui changent le résultat

01

Nommer l’espace par défaut

Avec xmlns="urn:books", saisissez {"b":"urn:books"} et utilisez //b:book. Sans préfixe, //book ne sélectionne que les éléments sans espace de noms.

02

Distinguer texte et text()

La vue texte renvoie la valeur complète de chaque élément, descendants inclus. //title/text() sélectionne seulement les nœuds texte directs ; le contenu mixte peut donc donner des résultats différents.

03

Réévaluer avant d’exporter

Modifier XML, expression, associations ou vue désactive aussitôt les exports. Relancez la requête. L’aperçu progresse par 50 résultats ; la copie et le téléchargement contiennent tous les résultats réussis.

Sélectionner, extraire et retrouver

Quatre types de résultats

Outre les ensembles de nœuds, string(//title), count(//book) et boolean(//missing) produisent des scalaires. Le JSON conserve le type et représente les valeurs par des chaînes, afin que NaN et Infinity ne deviennent pas null.

Attributs et prédicats

//book[@id="b1"] filtre les éléments, //@id extrait les attributs et //book[price>15]/title applique une comparaison numérique. Zéro correspondance reste un succès : count vaut 0 et values est un tableau vide.

Des chemins vérifiables

Les positions distinguent les frères de même nom. Pour les éléments avec espace de noms, local-name() et namespace-uri() rendent le chemin indépendant du préfixe choisi. Ces positions peuvent changer si la structure du document est modifiée.

Versions et limites

XPath 1.0 uniquement
Le testeur XPath utilise le moteur du navigateur. XPath 2.0/3.1, matches(), ends-with(), les variables et XQuery sont exclus. Les résultats de l’axe namespace:: ne sont pas garantis entre navigateurs.
XML strict sans réparation
Seul XML 1.0 bien formé est accepté. DTD et entités externes sont refusées ; une déclaration d’encodage doit indiquer UTF-8. Aucun ajout de balises HTML ni suppression des blancs ne modifie la source. Le texte adjacent et les sections CDATA sont réunis pour le modèle XPath. La sérialisation peut remplacer les marqueurs CDATA par du texte échappé, sans changer les caractères.
Préfixes explicites
L’objet JSON associe des préfixes ASCII à des URI non vides. Le préfixe vide et xmlns sont interdits ; xml est réservé à son URI standard. Un préfixe non ASCII dans la source peut être interrogé avec un alias ASCII de la même URI.
Évaluation synchrone bornée
Limites : 100 000 caractères en entrée, 2 000 nœuds XML avec attributs et texte, profondeur 100, expression de 2 000 caractères, 1 000 correspondances et 2 000 000 de caractères en sortie. Un dépassement invalide tout le résultat. Sans délai maximal forcé, une requête complexe peut momentanément bloquer l’onglet.
Entrée et restauration
Le collage est disponible, pas l’import URL, l’envoi de fichier, le partage enregistré ou la validation de schéma. Effacer et Exemple proposent un aperçu. Appliquer remplace le XML et les options ; Annuler la modification restaure une fois les entrées et le résultat.

Questions sur le testeur XPath

XPath 2.0 ou 3.0 sont-ils pris en charge ?

Non. Le moteur réel est XPath 1.0 dans le navigateur. Des fonctions comme matches() exigent un autre moteur ; leur rejet ne signifie pas que le XML est incorrect.

Comment sélectionner un élément selon un attribut ?

//book[@id="b1"] sélectionne un élément selon son attribut ; //book/@id renvoie la valeur. La casse compte et les attributs sans préfixe n’héritent pas de l’espace de noms par défaut.

Quelle différence entre / et // dans XPath ?

/ suit l’étape directe suivante. // recherche les descendants à partir de cette position : /library/book part de la racine, tandis que //book trouve aussi des éléments plus profonds.

XPath peut-il renvoyer du texte, des nombres ou des booléens ?

Oui : string(//title), count(//book) et boolean(//book). L’export enregistre le type et la valeur textuelle. false, une chaîne vide et NaN sont des résultats valides.

Pourquoi mon document avec espace de noms ne donne-t-il aucun résultat ?

L’espace par défaut s’applique aux éléments XML sans préfixe, mais pas aux noms sans préfixe de XPath 1.0. Associez un alias à l’URI, puis employez-le dans l’expression.

Une question demeure ?

Vérifier une autre expression

Le testeur XPath rend visibles le type du résultat et les associations de noms. Conservez une expression réussie avec son exemple XML pour reproduire ensuite une différence.