2009-12-22 58 views
1

我正在執行以下操作。 給定一個XDocument文檔;在C#中調用namespace-uri,namespace-uri有一個無效的令牌

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

我得到錯誤'// namespace-uri()'有一個無效的標記。

它似乎在節點測試中工作,例如「// * [namespace-uri()='xyz']」。 這個函數應該可以工作,XMLSPY對上述版本很滿意,我相信它使用了相同的引擎。

任何幫助,將不勝感激。 我想用xpath枚舉文檔中的所有名稱空間。

謝謝 Registers Craig。

回答

4

您的XPath是錯誤的。 namespace-uri()函數返回一個字符串,所以它不能用於需要節點集的地方。相反,你應該使用namespace軸:

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

這將返回一個包含文檔中的每個命名空間聲明節點集。

+0

非常好,非常感謝。完美的作品。 – Jim