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

时间:2009-12-22 05:58:27

标签: c# xml xpath

我正在执行以下操作。 给定一个XDocument doc;

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

我收到错误'// namespace-uri()'有一个无效的令牌。

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

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

由于 问候 克雷格。

1 个答案:

答案 0 :(得分:5)

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

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

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

相关问题