2012-01-13 8 views
1

を使用してXMLのn番目のノードを選択し、私はこのXPathクエリを使用しています:のXPath

xpath.compile("/TEI.2/text/body/div/entry/sense/cit/quote[text()="malta"]") 

私は「マルタ」を含む第二「引用」ノードを取得したいのですが。どうやってやるの?

は、私が試してみました:

xpath.compile("/TEI.2/text/body/div/entry/sense/cit/quote[text()="malta" and position()=2]")

など

xpath.compile("/TEI.2/text/body/div/entry/sense/cit/quote[text()="malta"][2]") 

これらは、しかし、私は2番目のノードがあると確信している私に空の結果を与えます。

ありがとうございます!

+0

xmlを供給できますか? – Treemonkey

+0

3番目のクエリが機能するはずです。 –

+0

第3のものは動作しません、私は今すぐもう一度試しました。そしてXMLに関しては、私はそれをここに置くことはできません。 –

答えて

1

解決しました。

私は最終的に[2]

すなわち、前の式にブラケットを追加する必要がありました

xpath.compile("(/TEI.2/text/body/div/entry/sense/cit/quote[text()="malta"])[2]") 

ありがとうございました!

+0

Krt_Malta、角括弧はXPath式の擬似演算子が使用されている場合にのみ必要です。したがって、読者を誤解させ、実際に別のXPath式を使用しているか、使用しているXPathエンジンがXPAth準拠の実装ではありません。 –