我的XML文档看起来像this
当我运行XPATH查询//collected_objects
时,我没有选择任何节点集。我究竟做错了什么?我想选择整个gather_objects节点。
答案 0 :(得分:7)
由于您的XML文档定义了 XML命名空间(<oval_system_characteristics xmlns="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5"
),因此您需要在查询中包含该文档!
如何执行此操作取决于您使用的系统/编程语言。在.NET / C#中,你可以这样做:
// 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);