Я следующую структуру XML:XSL: уровни Count между текущим узлом и другим конкретным узлом
<someSubNodeInXmlFile text="mainListStart">
<a text="text1">
<b text="text2">
<a text="text3">
<c text=""text4/>
</a>
<a text="text5"/>
</b>
</a>
<a text="text6">
<c text="text7"/>
</a>
</someSubNodeInXmlFile>
Моя проблема заключается в нумерации. Вышеупомянутый XML можно рассматривать как вложенный список.
Формат по умолчанию для нумерации - «1.1.1», level = «multiple». Но если список вложен в течение 4-го или более раз, формат должен измениться на «1», level = «single».
Нужный выход для указанной выше структуры будет:
1. mainListStart
1.1 text1
1.1.1 text2
1 text3
1 text4
2 text5
1.2 text6
1.2.1 text7
На мой взгляд, например если мой текущий узел является первым, мне нужно рассчитать, сколько предков находятся между моим текущим узлом и родителем. Если расчетное число меньше 4, используйте «1.1.1» в качестве формата списка, иначе используйте «1» в качестве формата.
Я пробовал несколько вещей сейчас, но никто из них не работал. Я могу рассчитать, сколько предков вообще у меня есть для текущего узла, но это вычисляет полное дерево предков, а не до определенного узла «someSubNodeInXmlFile».
Возможно ли это с помощью простого выражения xpath или я пытаюсь вычислить число с помощью рекурсивного шаблона, который начинается с current(), и ищет каждого следующего предка, если он нужен, добавив его к числу, если нет, и продолжайте к следующему предку?
Я могу представить, что последняя идея не очень эффективна (если она вообще работает). Но какое лучшее решение?
Заранее спасибо.
BRgrds, Jens
Mpf, это так просто и просто идея ... Иногда вы не видите одно дерево в глубоком лесу ... (этот термин существует на английском языке? ^^). Большое спасибо, что помогло. – Jens