node - xpath xml
XPath con mĂșltiples condiciones (3)
Tratar:
//category[@name=''Sport'' and ./author/text()=''James Small'']
¿Qué XPath puedo usar para seleccionar cualquier categoría con un atributo de nombre especificado y cualquier autor de nodo secundario con el valor especificado?
He intentado diferentes variaciones de la ruta a continuación sin éxito:
//quotes/category[@name=''Sport'' and author="James Small"]
El XML:
<?xml version="1.0" encoding="utf-8"?>
<quotes>
<category name="Sport">
<author>James Small<quote date="09/02/1985">Quote One</quote><quote date="11/02/1925">Quote nine</quote></author>
</category>
<category name="Music">
<author>Stephen Swann
<quote date="04/08/1972">Quote eleven</quote></author>
</category>
</quotes>
la pregunta no está clara, pero lo que entiendo es que necesita seleccionar una categoría que tenga un atributo de nombre y que tenga un autor secundario con el valor especificado, corrígeme si estoy preocupado
aquí hay un xpath
//category[@name=''Required value''][./author[contains(.,''Required value'')]]
e.g
//category[@name=''Sport''][./author[contains(.,''James Small'')]]
Uso :
/category[@name=''Sport'' and author/text()[1]=''James Small'']
o usar:
/category[@name=''Sport'' and author[starts-with(.,''James Small'')]]
Es una buena regla intentar evitar usar el //
pseudooperador siempre que sea posible, ya que su evaluación puede ser muy lenta.
También:
./somename
es equivalente a:
somename
por lo que se recomienda usar este último.