2012-03-28 19 views
5

mio documento XML assomiglia thisperché questa query XPATH non funziona?

Quando eseguo query XPath //collected_objects, non ottengo alcuna serie di nodi selezionato. Che cosa sto facendo di sbagliato? Voglio selezionare l'intero nodo collect_objects.

+0

@marc_s, sembra che dovrebbe andare in una risposta, quindi questa domanda può essere contrassegnata come risposta ... –

risposta

7

Poiché il documento XML ha uno spazio dei nomi XML definito (<oval_system_characteristics xmlns="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5") - è necessario includerlo nella query!

Come si può fare ciò dipende dal sistema/linguaggio di programmazione che si sta utilizzando. In .NET/C#, si potrebbe fare qualcosa del genere:

// 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); 
Problemi correlati