Accéder au contenu principal Passer au contenu complémentaire

Problème d'espace de noms XML

Cette section décrit un problème pouvant survenir lors de l'utilisation d'expressions XPath avec des documents XML contenant des espaces de noms. Pour plus d'informations concernant les espaces de noms, consultez XML namespace (en anglais) et Namespaces in XML (en anglais).

Description

Actuellement, les expressions XPath fonctionnent comme attendu lorsque le document XML ne contient pas d'espace de noms. Cependant, si un document contient des espaces de noms, y compris des espaces de noms par défaut, les expressions XPath peuvent retourner des résultats inattendus.

Par exemple, avec le document XML ci-dessous, les expressions /a, //c et //c/@name retournent un tableau vide :
<a xmlns="http://www.w3.org/2000/example">
  <b>
    <c name="name1"/>
  </b>
</a>

Solution de contournement

Pour éviter ce problème, vous pouvez utiliser une expression XPath récupérant un mot-clé par son nom, ce qui vous permet d'ignorer l'espace de noms. Pour les exemples ci-dessus, vous pouvez utiliser /*[name()='a'], //*[name()='c'] et //*[name()='c']/@name.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.