Heim >Backend-Entwicklung >C++ >Wie kann ich XML-Dokumente mit Namespaces mithilfe von XDocument ordnungsgemäß analysieren?
So analysieren Sie XML mit Namespaces in XDocument
Beim Arbeiten mit XML, das Namespaces enthält, ist es wichtig, diese in Ihrem Code korrekt zu verarbeiten . Ohne Angabe der richtigen Namespaces kann XDocument das XML möglicherweise nicht effektiv analysieren.
Betrachten Sie das folgende XML-Beispiel:
<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}"> </Correlation> </System> </E2ETraceEvent>
Wenn Sie versuchen, dieses XML mit XDocument zu analysieren, ohne das anzugeben In Namespaces können für bestimmte Elemente Nullwerte auftreten. Hier ist ein Codeausschnitt, der dieses Problem veranschaulicht:
XDocument xDoc = XDocument.Parse(XMLString); XElement xEl1 = xDoc.Element("E2ETraceEvent"); XElement xEl2 = xEl1.Element("System"); XElement xEl3 = xEl2.Element("Correlation"); XAttribute xAtt1 = xEl3.Attribute("ActivityID"); String sValue = xAtt1.Value; // Returns null
Lösung: Namespaces verwenden
Um XML mit Namespaces korrekt zu analysieren, müssen Sie die folgende Strategie verwenden:
Hier ist ein aktualisierter Codeausschnitt, der diese Lösung demonstriert:
XNamespace nsSys = "http://schemas.microsoft.com/2004/06/windows/eventlog/system"; XElement xEl2 = xDoc.Element(nsSys + "System"); XElement xEl3 = xEl2.Element(nsSys + "Correlation"); XAttribute xAtt1 = xEl3.Attribute("ActivityID"); String sValue = xAtt1.Value; // Returns the ActivityID
Durch die Verwendung von Namespaces Korrekt können Sie sicherstellen, dass Ihr Code Daten aus XML-Dokumenten, die Namespaces enthalten, genau extrahieren und bearbeiten kann.
Das obige ist der detaillierte Inhalt vonWie kann ich XML-Dokumente mit Namespaces mithilfe von XDocument ordnungsgemäß analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!