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

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

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

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

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

Ответ 1

/root/a[count(*)&gt;0]

предоставит любой "a" node с любым видом дочернего элемента node

Ответ 2

/root/a[count(*)>0]

Ответ 3

Это работает

/root/a[*]

или даже

//a[*]