Синтаксис xpath для полусоединений - PullRequest
2 голосов
/ 01 декабря 2011

Я знаю, что могу использовать xpath для выполнения объединений, используя "|"оператор.Есть ли способ выполнить полусоединения в xpath, например:

book[author = article/author]/title

Если существуют полусоединения, как будет выглядеть результат запроса выше.Выводит ли он элемент заголовка каждой книги, у которой есть автор, который также является автором статьи?

Ответы [ 2 ]

2 голосов
/ 01 декабря 2011

Может быть, вы хотите //book[author = //article/author]/title. С вашей текущей попыткой book[author = article/author] элементы article должны быть потомками элемента book, что маловероятно.

0 голосов
/ 01 декабря 2011

Данный запрос будет возвращать название каждой книги, которая содержит статью, автором которой является эта книга. Таким образом, в контексте books ниже единственным возвращаемым элементом будет элемент title с текстом «title 0».

<books>    
 <book>
   <title>Title 0</title>
   <author>Petri, M</author>
   <article>
     <title>Title 1</title>
     <author>Petri, M</author>
   </article>
   <article>
     <title>Title 2</title>
     <author>Butcher, P</author>
   </article>
 </book>

 <book>
    <title>Title 3</title>
    <author>Butcher, P</author>
    <article>
      <title>Title 4</title>
      <author>Petri, M</author>
    </article>
 </book>
</books>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...