Maison >développement back-end >C++ >Comment utiliser XPath avec des espaces de noms par défaut en 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!