XPath contém (text (), 'alguma string') não funciona quando usado com nó com mais de um subnó de texto
Eu tenho um pequeno problema com o Xpath contém com dom4j ...
Vamos dizer que meu XML é
<Home>
<Addr>
<Street>ABC</Street>
<Number>5</Number>
<Comment>BLAH BLAH BLAH <br/><br/>ABC</Comment>
</Addr>
</Home>
Vamos dizer que eu quero encontrar todos os nós que têm ABC no texto, dado o elemento raiz ...
Portanto, o xpath que eu precisaria escrever seria
//*[contains(text(),'ABC')]
No entanto, não é isso que o Dom4j retorna .... esse é um problema do dom4j ou meu entendimento de como o xpath funciona. pois essa consulta retorna apenas o elemento Street e não o elemento Comment.
O DOM torna o elemento Comment um elemento composto com quatro tags dois
[Text = 'XYZ'][BR][BR][Text = 'ABC']
Eu diria que a consulta ainda deve retornar o elemento, pois ele deve encontrar o elemento e executar contém nele, mas não ... ...
a consulta a seguir retorna o elemento, mas retorna muito mais do que apenas o elemento, retorna os elementos pai também ... o que é indesejável para o problema ...
//*[contains(text(),'ABC')]
Alguém conhece a consulta xpath que retornaria apenas os elementos<Street/>
e<Comment/>
?