XPath селектор по XML c namespace - CodeHelper

XPath селектор по XML c namespace

1

В .net не работают XPath селекторы, типа ("book/author"), если в корневом элементе присутсвует namespace:

<root xmlns="http://somesite.ru/XMLSchema">

Какое решение посоветуете, в случае указанного выше селектора возвращается 0 XMLNodeList

Лучший ответ:

1

Вот этот способ, по-моему мнению, самый оптимальный:

var xDoc = new XmlDocument();
xDoc.Load(stream);
var nsmanager = new XmlNamespaceManager(xDoc.NameTable);
nsmanager.AddNamespace("c", xDoc.DocumentElement.NamespaceURI);

Дальше XPath используется по обычной схеме, просто добавляется с: и nsmanager

XmlNodeList nodes = rootNode.SelectNodes("c:book", nsmanager);

Новые ответы

Новые Лучшие

1

Помог вот такой селектор:

//*[local-name() = 'author']

v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.