XML -Dokumente verwenden häufig Standardnamenspitzen. Bei der Abfrage solcher Dokumente mit XPAPH ist die korrekte Behandlung dieser Namespaces für eine genaue Knotenauswahl von entscheidender Bedeutung. Wenn der Namespace nicht angegeben wird, wird wahrscheinlich leere Abfrageergebnisse führen.
Die XmlNamespaceManager
-Klasse liefert die Lösung. Sie können Namespaces definieren und mit Präfixen assoziieren und ordnungsgemäße XPath -Abfragen aktivieren. Hier ist eine C# Implementierung:
XmlElement el = ...; // Your root XML element XmlNamespaceManager nsmgr = new XmlNamespaceManager(el.OwnerDocument.NameTable); nsmgr.AddNamespace("x", el.OwnerDocument.DocumentElement.NamespaceURI); XmlNodeList nodes = el.SelectNodes("/x:outerelement/x:innerelement", nsmgr);
Erläuterung:
el
: Repräsentiert das Stammelement Ihres XML -Dokuments. XmlNamespaceManager
: Erstellt mit dem Dokument NameTable
. nsmgr.AddNamespace("x", ...)
: Fügt einen Namespace mit dem Präfix "x" hinzu, der ihn in den Namespace URI des Stammelements zuordnet. Dieses Präfix wird im XPath -Ausdruck verwendet. el.SelectNodes(...)
: Fügt die XPath -Abfrage mithilfe der nsmgr
-Anramme aus, um den Namespace -Präfixen zu beheben. Der XPath -Ausdruck /x:outerelement/x:innerelement
identifiziert nun die Elemente im Standard -Namespace korrekt. Dieser Ansatz stellt sicher, dass Ihre XPath -Ausdrücke genau auf Knoten im Standard -Namespace abzielen und die richtigen Ergebnisse liefern. Denken Sie daran, /x:outerelement/x:innerelement
durch Ihren spezifischen XPath -Ausdruck zu ersetzen.
Das obige ist der detaillierte Inhalt vonWie benutze ich XPath mit Standard -Namespaces in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!