Heim > Backend-Entwicklung > C++ > Wie wähle ich XML-Knoten mit Namespaces mithilfe von C# aus?

Wie wähle ich XML-Knoten mit Namespaces mithilfe von C# aus?

Linda Hamilton
Freigeben: 2025-01-07 20:27:41
Original
568 Leute haben es durchsucht

How to Select XML Nodes with Namespaces Using C#?

Bei der Auswahl von XML-Knoten mit Namespaces in C# sind Probleme aufgetreten

Stellen Sie sich ein XML-Dokument vor, das Namespaces mit der folgenden Struktur enthält:

<code class="language-xml"><?xml version="1.0" encoding="utf-8"?><project defaulttargets="Build" toolsversion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"><itemgroup><compile include="clsWorker.cs"></compile></itemgroup></project></code>
Nach dem Login kopieren

Wenn Sie versuchen, einen SelectSingleNode-Knoten mit der Methode Compile abzurufen, ohne einen Namespace anzugeben, wird null zurückgegeben:

<code class="language-csharp">XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(Xml);

XmlNode node = xmldoc.SelectSingleNode("//Compile"); // 返回null</code>
Nach dem Login kopieren

Lösung: Verwenden Sie XmlNamespaceManager

Um den Knoten Compile korrekt abzurufen, wenn das Wurzelelement einen Namespace hat, sollte XmlNamespaceManager verwendet werden:

<code class="language-csharp">XmlNamespaceManager ns = new XmlNamespaceManager(xmldoc.NameTable);
ns.AddNamespace("msbld", "http://schemas.microsoft.com/developer/msbuild/2003");
XmlNode node = xmldoc.SelectSingleNode("//msbld:Compile", ns);</code>
Nach dem Login kopieren

Durch das Hinzufügen eines Namespace-Managers und die Angabe des richtigen Namespace-Präfixes (in diesem Fall „msbld“) kann die Methode SelectSingleNode den erforderlichen Knoten erfolgreich finden und zurückgeben.

Das obige ist der detaillierte Inhalt vonWie wähle ich XML-Knoten mit Namespaces mithilfe von C# aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage