антиКИЛЛЕР
Well-Known Member
- Регистрация
- 28.07.2011
- Сообщения
- 92
Здравствуйте.
Помогите пожалуйста разобраться и дайте указание, в сторону чего курить маны, т.к. уже целый день сижу и никак не могу сделать элементарную, казалось бы, вещь.
Итак задача:
Есть исходный XML (он значительно больше, но я немного сократил, сути это не меняет):
Задача состоит в добавлении порядкового номера элементу elem, но идущего не в том порядке, в котором они расположены в исходном документе, а в порядке с учётом располагающихся в элементе linkGroup/link.
Немного сумбурно выразился, но вот что в итоге должно получится:
Я только начинающий xstl-верстальщик и уже всю голову сломал, как именно xslt-стили записать.
Буду очень рад, если кто подскажет методику или лучше фрагмет шаблона, выполняющего данную операцию.
Большое спасибо за помощь)
Помогите пожалуйста разобраться и дайте указание, в сторону чего курить маны, т.к. уже целый день сижу и никак не могу сделать элементарную, казалось бы, вещь.
Итак задача:
Есть исходный XML (он значительно больше, но я немного сократил, сути это не меняет):
Код:
<list>
<section>
<elem id="el-0001"/>
<elem id="el-0002"/>
<link id="ln-0001"/>
</section>
<section>
<elem id="el-0003"/>
<link id="ln-0002"/>
<elem id="el-0004"/>
</section>
<linkGroup>
<link id="ln-0001">
<elem id="el-0005"/>
<elem id="el-0006"/>
</link>
<link id="ln-0002">
<elem id="el-0007"/>
<elem id="el-0008"/>
<elem id="el-0009"/>
</link>
</linkGroup>
</list>
Немного сумбурно выразился, но вот что в итоге должно получится:
Код:
<list>
<section>
<elem pos="1" id="el-0001"/>
<elem pos="2" id="el-0002"/>
<link id="ln-0001"/> /* тут обращаемся в linkGroup/link по id="ln-0001" и нумеруем распологающиеся там elem, затем уже обратно */
</section>
<section>
<elem pos="5" id="el-0003"/> /* тут продолжаем нумерацию, после номера в link id="ln-0001" */
<link id="ln-0002"/> /* тут опять нумеруем элементы сначала в linkGroup/link id="ln-0002", а затем продолжаем здесь нумеровать */
<elem pos="9" id="el-0004"/>
</section>
<linkGroup>
<link id="ln-0001">
<elem pos="3" id="el-0005"/>
<elem pos="4" id="el-0006"/>
</link>
<link id="ln-0002">
<elem pos="6" id="el-0007"/>
<elem pos="7" id="el-0008"/>
<elem pos="8" id="el-0009"/>
</link>
</linkGroup>
</list>
Буду очень рад, если кто подскажет методику или лучше фрагмет шаблона, выполняющего данную операцию.
Большое спасибо за помощь)