<list>
<section>
<elem id="el-0001"/>
<elem id="el-0002"/>
<linkRef id="ln-0001"/>
</section>
<section>
<elem id="el-0003"/>
<linkRef 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>
Задача XSLT
Есть задача XML.
Необходимо написать шаблон XSL, преобразующий исходный XML в результируюющий, где элементы <elem> будут пронумерованы (добавится атрибут pos)
в порядке возрастания, но учитывая не исходное, а результирующее расположение, в котором элементы <link> встанут на место элементов <linkRef> с соответствующими id. Структура, как видно из примера, не должна быть нарушена.
Исходник:
Код:
Результат:
Код:
<list>
<section>
<elem pos="1" id="el-0001"/>
<elem pos="2" id="el-0002"/>
<link id="ln-0001"/>
</section>
<section>
<elem pos="5" id="el-0003"/>
<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>
<section>
<elem pos="1" id="el-0001"/>
<elem pos="2" id="el-0002"/>
<link id="ln-0001"/>
</section>
<section>
<elem pos="5" id="el-0003"/>
<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>
Поскольку силы мои в XSLT еще не настолько большие, бьюсь уже несколько дней но так и не получилось ничего внятного. Перелопатил интернет, пробовал и так и эдак, но в итоге ничего почему то не получается. Помогите, пожалуйста решить данную проблему.
Заранее благодарен.