2012-03-28 13 views
5

Meine XML-Dokument sieht aus wie thisWarum funktioniert diese XPATH-Abfrage nicht?

Wenn ich XPath-Abfrage //collected_objects laufen, die ich ausgewählt habe keine nodeset bekommen. Was mache ich falsch? Ich möchte den gesamten Knoten collected_objects auswählen.

+0

@marc_s, es scheint so, dass sollte in eine Antwort gehen, so kann diese Frage als beantwortet markiert werden ... –

Antwort

7

Da Ihr XML-Dokument einen XML-Namespace definiert hat (<oval_system_characteristics xmlns="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5") - müssen Sie dies in Ihre Abfrage aufnehmen!

Wie Sie dies tun können, hängt davon ab, welches System/welche Programmiersprache Sie verwenden. In .NET/C#, könnten Sie folgendes tun:

// create XmlDocument and load XML file 
XmlDocument doc = new XmlDocument(); 
doc.Load(yourXmlFileNameHere); 

// define XML namespace manager and a prefix for the XML namespace used 
XmlNamespaceManager mgr = new XmlNamespaceManager(doc.NameTable); 
mgr.AddNamespace("ns", "http://oval.mitre.org/XMLSchema/oval-system-characteristics-5"); 

// get list of nodes, based on XPath - using the XML namespace manager 
XmlNodeList list = doc.SelectNodes("//ns:collected_objects", mgr); 
Verwandte Themen