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!