dom4j に含まれる XPath に小さな問題があります ...
私のXMLが
<Home>
<Addr>
<Street>ABC</Street>
<Number>5</Number>
<Comment>BLAH BLAH BLAH <br/><br/>ABC</Comment>
</Addr>
</Home>
ルート要素を指定して、テキストに ABC が含まれるすべてのノードを見つけたいとしましょう...
したがって、私が書く必要のある XPath は次のようになります。
//*[contains(text(),'ABC')]
ただし、これは dom4j が返すものではありません .... これは dom4j の問題ですか、それとも XPath がどのように機能するかを理解していますStreet
かComment
?
DOM はComment
要素を 4 つのタグ 2 を持つ複合要素にします
[Text = 'XYZ'][BR][BR][Text = 'ABC']
要素を見つけて実行する必要があるため、クエリは引き続き要素を返す必要があると思いますが、そうではありません...
次のクエリは要素を返しますが、要素だけでなく、親要素も返します。これは問題にとって望ましくありません。
//*[contains(text(),'ABC')]
<Street/>
要素とだけを返す XPath クエリを知っている人はいます<Comment/>
か?