2011-01-07 5 views
2

XPathクエリのリストとXMLドキュメントのノードがある場合、そのノードに一致するすべてのXPathクエリを見つける必要があります。 最も簡単な方法は、各XPathクエリを調べ、ノードに一致させることです。しかし、私はこれを行うより速い方法を探しています。 .NET(または任意のプラットフォーム)に既存のライブラリ/ツールがありますか?XPathリバースルックアップ

+0

良い質問、+1。簡単な解決方法は私の答えを見てください。 :) –

答えて

1

だけを使用します。

まさにこのノードを選択するXPath式を使用して式のいずれかと $theNode
count(yourExpression | $theNode) = count(yourExpression) 

代替"yourExpression"、結果はであるために、これらを取る:

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良い答え。 –