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.