Maison >développement back-end >C++ >Comment utiliser XPath avec des espaces de noms par défaut en C #?

Comment utiliser XPath avec des espaces de noms par défaut en C #?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-29 07:42:08687parcourir

How to Use XPath with Default Namespaces in C#?

Travailler avec XPath et les espaces de noms par défaut dans C #

Les documents XML utilisent souvent des espaces de noms par défaut. Lorsque vous interrogez ces documents à l'aide de XPATH, la gestion correcte de ces espaces de noms est cruciale pour la sélection précise du nœud. Le non-spécification de l'espace de noms entraînera probablement des résultats de requête vides.

La classe XmlNamespaceManager fournit la solution. Il vous permet de définir des espaces de noms et de les associer à des préfixes, permettant des requêtes XPath appropriées. Voici une implémentation C #:

<code class="language-csharp">XmlElement el = ...; // Your root XML element
XmlNamespaceManager nsmgr = new XmlNamespaceManager(el.OwnerDocument.NameTable);
nsmgr.AddNamespace("x", el.OwnerDocument.DocumentElement.NamespaceURI);
XmlNodeList nodes = el.SelectNodes("/x:outerelement/x:innerelement", nsmgr);</code>

Explication:

  • el: représente l'élément racine de votre document XML.
  • XmlNamespaceManager: créé à l'aide du document NameTable.
  • nsmgr.AddNamespace("x", ...): ajoute un espace de noms avec le préfixe "x," le mappant à l'espace de noms URI de l'élément racine. Ce préfixe sera utilisé dans l'expression XPATH.
  • el.SelectNodes(...): Exécute la requête XPATH à l'aide du nsmgr pour résoudre les préfixes d'espace de noms. L'expression XPath /x:outerelement/x:innerelement identifie désormais correctement les éléments dans l'espace de noms par défaut.

Cette approche garantit que vos expressions XPath ciblent avec précision les nœuds dans l'espace de noms par défaut, fournissant les résultats corrects. N'oubliez pas de remplacer /x:outerelement/x:innerelement par votre expression XPath spécifique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Que fait l'opérateur «?Article suivant:Que fait l'opérateur «?