Ich habe ein kleines Problem mit XPath enthält mit dom4j ...
Nehmen wir an, mein XML lautet
<Home>
<Addr>
<Street>ABC</Street>
<Number>5</Number>
<Comment>BLAH BLAH BLAH <br/><br/>ABC</Comment>
</Addr>
</Home>
Nehmen wir an, ich möchte alle Knoten finden, die das ABC im Text des Wurzelelements enthalten...
Der XPath, den ich zu schreiben hätte, wäre also
//*[contains(text(),'ABC')]
Dies ist jedoch nicht, was dom4j zurückgibt .... ist dies ein dom4j Problem oder mein Verständnis, wie XPath funktioniert, da diese Abfrage nur die Street
Element und nicht das Element Comment
Element?
Das DOM macht die Comment
Element ein zusammengesetztes Element mit vier Tags zwei
[Text = 'XYZ'][BR][BR][Text = 'ABC']
Ich würde davon ausgehen, dass die Abfrage sollte immer noch das Element zurückgeben, da es das Element finden sollte und führen Sie enthält auf es, aber es tut nicht ...
Die folgende Abfrage gibt das Element zurück, aber sie gibt weit mehr als nur das Element zurück - sie gibt auch die übergeordneten Elemente zurück, was bei diesem Problem unerwünscht ist.
//*[contains(text(),'ABC')]
Kennt jemand die XPath-Abfrage, die nur die Elemente zurückgeben würde <Street/>
y <Comment/>
?