我們想通過XPath表達式實現對元素的存在檢查。 XPath表達式是在外部定義的。我們嘗試使用System.Xml.XPath中的XPathEvaluate擴展方法,但是當我們嘗試執行以下操作時,它會發出抱怨。從XPath表達式返回布爾值
XDocument d = new XDocument(
new XElement("test",
new XElement("element"),
new XElement("element")));
bool b = (bool)d.XPathEvaluate("/test/element[exists()]");
此功能目前失敗,異常「命名空間管理器或XsltContext需要的。此查詢具有前綴,變量,或用戶定義的函數。」。如果我們嘗試exists(/test/element)
,我們會得到相同的信息。
我們希望在XPath表達式中表達的其他內容之一是元素的數量,例如, count(/text/element) = 2
。
測試條件應該是XPath表達式的一部分。
函數調用d.XPathEvaluate("/test/element[last()]")
按預期進行評估。
這樣可以使用XPathEvaluate
嗎?
[編輯] 是的。
如果不是,那麼.Net框架中是否有其他選擇?
[編輯] 是的。
[編輯] 剩餘的問題:爲什麼exists
函數不起作用?
不是之前,但只是測試它,它的工作原理。 – 2009-12-11 10:24:51