Как узнать общее количество конкретных узлов между корневым узлом и текущим узлом в xslt? - PullRequest
1 голос
/ 25 августа 2011

Я хочу посчитать общее количество определенных узлов между корневым узлом и текущим узлом. Например:

 <w:body> <!-- root Node -->
     <w:p/>
             <w:rect>
             <w:p>some text1</w:p>  
            </w:rect>
     <w:p/>
             <w:rect>
              <w:p>some text2</w:p>  
            </w:rect>

     <w:p/>
     <w:p/>
     <w:p/>
            <w:rect>
             <w:p>some text5</w:p>   <!-- This is current node now -->
            </w:rect>
     <w:p/>
     <w:p/>
     <w:p/>
     <w:p/>
</w:body>

Это мой сценарий. Вот, предположим, что некоторый текст является моим текущим узлом. Итак, теперь я хочу получить parent :: w: p текущего узла (Предположим, что это имя узла в качестве "targetNode") . После этого я хочу вычислить общее количество того же уровня w: p от корневого узла до targetNode .

Мой желаемый результат: 5

Пожалуйста, помогите мне выйти из этого вопроса ...

1 Ответ

2 голосов
/ 25 августа 2011

Как насчет этого единственного выражения XPath:

 count(ancestor::w:p[1]/preceding-sibling::w:p + 1)

Таким образом, мы получаем количество всех предшествующих братьев и сестер w: p узлов первого предка w: p + 1 (первый предок w: p сам).

...