Xpath: подсчет элементов в документе XML

У меня довольно большой XML-документ. Основная структура этого XML следующая:

<document> <title> Title </title> <frontm> <toc> </toc> </frontm> <section> <section> <p>content</p> </section> </section> <section> <section> <p>content</p> </section> </section> <section> <section> <p>content</p> </section> </section> <section> <section> <p>content</p> </section> </section>
</document>

Я пробовал следующий xpath, но он возвращает только половину числа разделов:

count(../../body/section/section/following-sibling::node())+1

Есть идеи?

Изменение: я пытаюсь подсчитать количество разделов в разделах (применяется к приведенному выше примеру, xpath должен возвращать 4).

1 ответ

Кажется, вы хотите подсчитать элементы section

Если вы хотите подсчитать разделы листового узла, не делая предположений относительно p детей

count(//section[ancestor::section])

Аналогично, если вы хотите подсчитать родительские разделы

count(//section[section])

И если вы хотите подсчитать все элементы раздела, на любом уровне:

count(//section)

licensed under cc by-sa 3.0 with attribution.