Heim >Backend-Entwicklung >C++ >Wie verwende ich XPath mit einem Standard -Namespace in C#?
Bei der Verarbeitung des XML -Dokuments, das den Standard -Benennungsraum enthält, kann der XPath -Auswahlknoten in C#Herausforderungen begegnen. Dies liegt daran, dass der XPath -Ausdruck normalerweise explizit den Namensbereich erklärt werden muss, um die Elemente und Attribute im Dokument zu identifizieren.
In dem angegebenen Beispiel versucht der Code, Xpathnavigator zu verwenden, um den Knoten aus dem XML -Dokument mit dem Standard -Speicherplatz auszuwählen. Wenn Sie jedoch den Namensraum nicht angeben, haben Sie keine Ergebnisse.
Lösung:
Die Methode zur Lösung dieses Problems besteht darin, den Standard -Speicherplatz im XPath -Ausdruck zu enthalten. Dies kann erreicht werden, indem XMLNameSpacemanager verwendet wird, um das Präfix für den Namensraum mit URI zu verbinden. Das Folgende ist die aktualisierte Codeversion:
im Code nach diesem Update:
<code class="language-csharp">XmlElement el = ...; //TODO XmlNamespaceManager nsmgr = new XmlNamespaceManager( el.OwnerDocument.NameTable); nsmgr.AddNamespace("x", el.OwnerDocument.DocumentElement.NamespaceURI); var nodes = el.SelectNodes(@"/x:outerelement/x:innerelement", nsmgr);</code>
Holen Sie sich den Verweis auf das Stammelement (Xmlelement EL).
Das obige ist der detaillierte Inhalt vonWie verwende ich XPath mit einem Standard -Namespace in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!