Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Задача XSLT

79K
06 февраля 2012 года
nunoob
1 / / 06.02.2012
Доброго времени суток!
Есть задача XML.
Необходимо написать шаблон XSL, преобразующий исходный XML в результируюющий, где элементы <elem> будут пронумерованы (добавится атрибут pos)
в порядке возрастания, но учитывая не исходное, а результирующее расположение, в котором элементы <link> встанут на место элементов <linkRef> с соответствующими id. Структура, как видно из примера, не должна быть нарушена.
Исходник:
Код:
<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>


Результат:
Код:
<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 еще не настолько большие, бьюсь уже несколько дней но так и не получилось ничего внятного. Перелопатил интернет, пробовал и так и эдак, но в итоге ничего почему то не получается. Помогите, пожалуйста решить данную проблему.
Заранее благодарен.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог