2011-01-07 156 views
2

給定XPath查詢列表和XML文檔中的節點,我需要找出與節點匹配的所有XPath查詢。 最簡單的方法是通過每個XPath查詢並匹配節點。但我正在尋找更快的方式來做到這一點。 .NET(或任何平臺)中是否有任何現有的庫/工具?XPath反向查詢

+0

好問題,+1。查看我的答案以獲得簡單的解決方案:) – 2011-01-07 17:00:15

回答

1

只需使用

count(yourExpression | $theNode) = count(yourExpression) 

替代"yourExpression"與您的任何表情和$theNode與選擇的正是這種節點的XPath表達式,然後把這些用於其結果是

true()

在.NET中評估任何XPAth 1.0表達式的方法就是打電話給XPathNavigator.Evaluate()的方法。

記住:節點集合成員資格(均在XPath 1.0和XPath 2.0中)可被表示爲:

count($node-set | $node) = count($node-set) 

的XPath 2.0溶液:

yourExpression intersect $theNode is $theNode 

,或只是

boolean(yourExpression intersect $theNode) 
+0

+1很好的答案。 – 2011-01-07 20:22:37