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
Libérer: 2025-01-29 07:42:08
original
714 Les gens l'ont consulté

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 #:

1

2

3

4

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);

Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal