web-dev-qa-db-fra.com

XPath pour sélectionner un élément en fonction de la valeur de l'enfant

Essayer de sélectionner un élément en fonction de la valeur de l'un de ses enfants

En pensant à ce qui suit mais ne fonctionne pas, appréciez toute aide, merci

./book[/author/name = 'John'] ou

./book[/author/name text() = 'John']

Vous voulez tous les livres dont le nom de l'auteur = 'John'

Fichier xml

<list>
   <book>
      <author>
         <name>John</name>
         <number>4324234</number>
      </author>
      <title>New Book</title>
      <isbn>dsdaassda</isbn>
   </book>
   <book>...</book>
   <book>...</book>
</list>
191
James Walsh

Presque là. Dans votre prédicat, vous voulez un chemin relatif, alors changez

./book[/author/name = 'John'] 

soit

./book[author/name = 'John'] 

ou

./book[./author/name = 'John'] 

et vous ferez correspondre votre élément. Votre prédicat actuel retourne à la racine du document pour rechercher un author.

276
AakashM