Выберите элемент, который имеет другой элемент в любом месте внутри - PullRequest
3 голосов
/ 17 февраля 2009

Как выбрать любой узел a с узлом b где-нибудь внутри него?

Имеются следующие три XML-документа:

<a>
    <b></b>
</a>

или

 <a>
    <c>
        <b></b>
    </c>
</a>

или

   <a/>

Я хочу, чтобы элемент a в первых двух документах был выбран.

Очевидно, a [// b] не является решением.

Ответы [ 2 ]

11 голосов
/ 18 февраля 2009
a[descendant::b]

точнее и эффективнее, чем

a[.//b]

, что равно

a[self::node()/descendant-or-self::node()/child::b]
2 голосов
/ 17 февраля 2009

Вы должны попробовать:

//a[.//b]

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