вызывая namespace-uri в C #, namespace-uri имеет неверный токен - PullRequest
2 голосов
/ 22 декабря 2009

Я выполняю следующее. Учитывая документ XDocument;

doc.XPathEvaluate("//namespace-uri()");

Я получаю сообщение об ошибке «// namespace-uri ()» содержит недопустимый токен.

Кажется, что он работает в тесте узла, например "// * [namespace-uri () = 'xyz']". Хотя функция должна работать, XMLSPY доволен вышеуказанной версией, и я считаю, что она использует тот же механизм.

Любая помощь будет оценена. Я хочу перечислить все пространства имен в документе, используя xpath.

Спасибо С уважением Крейг.

1 Ответ

5 голосов
/ 22 декабря 2009

Ваш XPath неверен. Функция namespace-uri() возвращает строку, поэтому ее нельзя использовать там, где ожидается набор узлов. Вместо этого вы должны использовать namespace ось:

doc.XPathEvaluate("//namespace::*");

Это вернет набор узлов, содержащий каждое объявление пространства имен в документе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...