XPath для выбора элемента на основе дочернего значения childs


попытка выбрать элемент на основе значения одного из его дочерних детей

думая следующее, но не работает, ценю любую помощь, спасибо

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

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

Хочу все книги, где имя автора = 'Джон'

Xml-файл

<list>
   <book>
      <author>
         <name>John</name>
         <number>4324234</number>
      </author>
      <title>New Book</title>
      <isbn>dsdaassda</isbn>
   </book>
   <book>...</book>
   <book>...</book>
</list>
1   170  

1 ответ:

почти нет. В вашем предикате вы хотите относительные пути, чтобы изменить

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

или

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

или

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

и вы будете соответствовать вашей стихии. Ваш текущий предикат возвращается в корень документа, чтобы найти author.