xml - node - xpath wildcard




¿Cuál es el XPath correcto para elegir los atributos que contienen "foo"? (6)

Dado este XML, qué XPath devuelve todos los elementos cuyo atributo prop contiene Foo (los tres primeros nodos):

<bla>
 <a prop="Foo1"/>
 <a prop="Foo2"/>
 <a prop="3Foo"/>
 <a prop="Bar"/>
</bla>

¿Has probado algo como esto?

// a [contiene (@prop, "Foo")]

Nunca he usado la función contains antes, pero sospecho que debería funcionar como se anuncia ...


/ bla / a [contiene (@prop, "foo")]


John C es el más cercano, pero XPath distingue entre mayúsculas y minúsculas, por lo que el XPath correcto sería:

/bla/a[contains(@prop, 'Foo')]

Para el código anterior ... // * [contains (@ prop, 'foo')]


prueba esto:

// a [contiene (@ prop, 'foo')]

eso debería funcionar para cualquier etiqueta "a" en el documento


//a[contains(@prop,'Foo')]

Funciona si uso este XML para recuperar los resultados.

<bla>
 <a prop="Foo1">a</a>
 <a prop="Foo2">b</a>
 <a prop="3Foo">c</a>
 <a prop="Bar">a</a>
</bla>

Este sitio es ideal para probar este tipo de cosas

http://www.xmlme.com/XpathTool.aspx

Editar: Otra cosa a tener en cuenta es que mientras el XPath anterior devolverá la respuesta correcta para ese xml particular, si quiere garantizar que solo obtenga los elementos "a" en el elemento "blah", debe como otros han mencionado también usar

/bla/a[contains(@prop,'Foo')]

Esto buscará todos los elementos "a" en su documento xml completo, independientemente de estar anidado en un elemento "blah"

//a[contains(@prop,'Foo')]  

Agregué esto en aras de la minuciosidad y en el espíritu de . :)





xpath