Xpath, чтобы выбрать только узлы, где существуют дочерние элементы? - PullRequest
13 голосов
/ 17 июля 2009

Это должно быть легко, но это доставляет мне неприятности. Учитывая эту структуру:

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

Я пытаюсь сформулировать выражение xpath, которое дает только непустые элементы "a", то есть те, которые имеют дочерние элементы. Поэтому я хочу вернуть первый экземпляр «а», но не второй.

Пока у меня есть "/ root / a / self :: *", но это возвращает мне оба.

Ответы [ 3 ]

14 голосов
/ 17 июля 2009
/root/a[count(*)&gt;0]

даст любой узел 'a' с любым видом дочернего узла

8 голосов
/ 17 июля 2009
/root/a[count(*)>0]
4 голосов
/ 08 января 2014

Это работает

/root/a[*]

или даже

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