Heim > Backend-Entwicklung > C++ > Wie kann ich XML-Elemente mit Namespaces mithilfe von XDocument effektiv abfragen?

Wie kann ich XML-Elemente mit Namespaces mithilfe von XDocument effektiv abfragen?

Barbara Streisand
Freigeben: 2025-01-02 19:31:38
Original
962 Leute haben es durchsucht

How Can I Effectively Query XML Elements with Namespaces using XDocument?

Navigieren in XML mit Namespaces in XDocument

Beim Arbeiten mit XML, das Namespaces enthält, ist es wichtig, deren Auswirkungen auf die Elementabfrage in XDocument zu berücksichtigen. Standardmäßig werden XDocument-Elemente ohne Berücksichtigung von Namespaces abgefragt. Dies kann zu unerwarteten Ergebnissen führen, wie im bereitgestellten Beispiel-XML gezeigt:

<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent">
    <System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system">
       <EventID>589828</EventID>
       <Correlation ActivityID="{00000000-0000-0000-0000-000000000000}" />
    </System>
</E2ETraceEvent>
Nach dem Login kopieren

In diesem Szenario gibt der folgende Code aufgrund der Existenz des Namespace Null für xEl1 zurück:

XDocument xDoc = XDocument.Parse(CurrentString);
XElement xEl1 = xDoc.Element("E2ETraceEvent");
Nach dem Login kopieren

Beheben des Problems mit Namespaces

Um XML mit Namespaces korrekt zu navigieren, verwenden Sie die XNamespace-Klasse. XNamespace bietet eine Möglichkeit, einen Namespace anzugeben und ihn während der Abfrage mit Elementnamen zu kombinieren. Hier ist der überarbeitete Code:

XNamespace nsSys = "http://schemas.microsoft.com/2004/06/windows/eventlog/system";
XElement xEl2 = xDoc.Element(nsSys + "System");
Nach dem Login kopieren

Jetzt enthält xEl2 das Systemelement mit dem angegebenen Namespace. Sie können weiterhin auf ähnliche Weise durch den XML-Baum navigieren und dabei die relevanten Namespaces einbeziehen.

Zusätzliche Hinweise

  • XML-Namespaces werden insbesondere zur logischen Gruppierung von Elementen und Attributen verwendet in Fällen, in denen mehrere Dokumente aus unterschiedlichen Quellen ähnliche Elementnamen verwenden können.
  • Stellen Sie sicher, dass Sie den richtigen Namespace angeben, wenn Sie Elemente abfragen Erhalten Sie genaue Ergebnisse.

Das obige ist der detaillierte Inhalt vonWie kann ich XML-Elemente mit Namespaces mithilfe von XDocument effektiv abfragen?. 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