Tengo un pequeño problema con XPath contiene con dom4j ...XPath contiene (texto(), 'un trozo de cuerda') no funciona cuando se utiliza con nodo con más de un texto subnodo
digamos que mi XML es
<Home>
<Addr>
<Street>ABC</Street>
<Number>5</Number>
<Comment>BLAH BLAH BLAH <br/><br/>ABC</Comment>
</Addr>
</Home>
Digamos que quiero encontrar todos los nodos que tienen ABC en el texto dado el elemento raíz ...
Así que el XPath que iba necesaria para escribir habría
//*[contains(text(),'ABC')]
Sin embargo, esto no es lo que devuelve Dom4j ... ¿es esto un problema dom4j o mi comprensión de cómo funciona xpath. ya que esa consulta solo devuelve el Elemento callejero y no el elemento Comentario.
El DOM hace que el elemento de comentario a un elemento compuesto con cuatro etiquetas de dos
[Text = 'XYZ'][BR][BR][Text = 'ABC']
Yo asumiría que la consulta todavía debe devolver el elemento ya que debe encontrar el elemento y ejecución contiene en él, pero que doesn' t ... ...
la siguiente consulta devuelve el elemento pero vuelve mucho más que sólo el elemento, devuelve los elementos primarios, así ... que no es deseable para el problema ...
//*[contains(text(),'ABC')]
¿Alguien sabe la consulta xpath que devolvería solo los Elementos <Street/>
y <Comment/>
?
Por lo que puedo decir, '// * [contiene (texto(), 'ABC')]' devuelve solo el elemento ''. No devuelve ningún antepasado de '' o ''. –