почему этот запрос XPATH не работает? - PullRequest
5 голосов
/ 28 марта 2012

Мой XML-документ выглядит как this

Когда я запускаю XPATH-запрос //collected_objects, я не получаю выбранный набор узлов.Что я делаю неправильно?Я хочу выбрать весь узел собрано_объектов.

1 Ответ

7 голосов
/ 29 марта 2012

Поскольку в вашем 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...