XPath для выбора элемента на основе дочернего значения childs - PullRequest
188 голосов
/ 13 марта 2012

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

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

./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 Ответ

272 голосов
/ 13 марта 2012

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

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

или

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

или

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...