2011-02-04 2 views
1

私はいくつかの異なるコンテキストで同じクエリを実行しようとしていますが、私は常に同じ結果を得ます。XPath.selectNodes(コンテキスト)は常にJDOMでドキュメント全体を使用します

final XPath xpath = XPath.newInstance("//t"); 

List<Element> result = xpath.selectNodes(thisIsThePelement); 
// and I've debuged it, it really is the <p> element 

をそして、私は常に結果リストの両方<t>の要素を取得する:これは私がやっているものです

<root> 
<p> 
    <r> 
    <t>text</t> 
    </r> 
</p> 
<t>text2</t> 
</root> 

: これは、例えば、XMLです。 私は<t><p>の中に入れる必要があります。XPathオブジェクトに渡しています。

いずれのアイデアも大変助かりました。ありがとうございます。

答えて

9

あなたはXPath式として"//t"を使用しています。つまり、正確には「ドキュメント内のすべてのt要素を見つける」という意味です。

コンテキストノードの子孫t要素のみを検索するには、".//t"を使用します。

詳細については、XPath仕様の"abbreviated syntax"を参照してください。

+0

「読んでください」というだけでなく、ありがたいことに感謝しています:)私のxpathの知識はそれほど必要ではないようです。 – Simeon

関連する問題