在C#中调用namespace-uri,namespace-uri具有无效的令牌

Jim*_*Jim 2 c# xml xpath

我正在执行以下内容。给定一个XDocument文档;

doc.XPathEvaluate("//namespace-uri()");
Run Code Online (Sandbox Code Playgroud)

我收到错误“ // namespace-uri()”的令牌无效。

它似乎可以在节点测试中工作,例如“ // * [namespace-uri()='xyz']”。该功能应该可以使用,XMLSPY对上述版本感到满意,并且我相信它使用相同的引擎。

任何帮助,将不胜感激。我想使用xpath枚举文档中的所有名称空间。

感谢问候克雷格。

Phi*_*oth 5

您的XPath错误。该namespace-uri()函数返回一个字符串,因此不能在需要节点集的地方使用。相反,您应该使用namespace轴:

doc.XPathEvaluate("//namespace::*");
Run Code Online (Sandbox Code Playgroud)

这将返回一个包含文档中每个命名空间声明的节点集。