![]() |
Модераторы: diadiavova |
![]() ![]() ![]() |
|
artemtereshkov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 4.2.2012 Репутация: нет Всего: нет |
Всем здравсвуйте.
ОЧЕНЬ НУЖНА ПОМОЩЬ! Задача состоит в добавлении порядкового номера элементу elem, но идущего не в том порядке, в котором они расположены в исходном документе, а в порядке с учётом располагающихся в элементе linkGroup/link. Немного сумбурно выразился, но вот что в итоге должно получится:
Я только начинающий xstl-верстальщик и уже всю голову сломал, как именно xslt-стили записать. Буду очень рад, если кто подскажет методику или лучше фрагмет шаблона, выполняющего данную операцию. Большое спасибо за помощь) |
|||
|
||||
diadiavova |
|
||||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Честно говоря, эта задача не для новичка. Тут позицию надо вычислять с использованием рекурсивного шаблона. Ты не указал, как выглядит первоначальный документ, насколько я понял, там все так же, только без атрибутов pos, которые как раз и надо установить. Вот как это выглядит для твоего примера, если что непонятно - спрашивай.
-------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
||||
|
|||||
artemtereshkov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 4.2.2012 Репутация: нет Всего: нет |
Спасибо большое, вы мне очень помогли.
Код и правда далеко не для новичка. Не хочу показать назойливым, но было бы прекрасно, если бы вы дали небольшие комментарии к основным шаблонам и переменным. |
|||
|
||||
diadiavova |
|
|||
![]() Доктор Зло(диагност, настоящий, с лицензией и полномочиями) ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5821 Регистрация: 14.8.2008 Где: В Коньфпольте Репутация: 22 Всего: 142 |
Сначала идет шаблон, копирующий все элементы документа. Поскольку он самый первый в документе и указывает на узлы не конкретно, то он имеет самый низкий приоритет и при наличии более высокоприоритеных шаблонов, срабатывают именно они. Далее идут два шаблона для элементов section/elem и link/elem соответственно. Они тоже копируются в документ, но для них устанавливается атрибут pos.
Значение атрибута вычисляется немного по разному. В случае section/elem нужно подсчитать количество всех предшествующих в документе таких же элементов, прибавить к нему количество элементов, на которые ссылаются элементы link и еще единицу. Для элементов link/elem вычисляется похожим способом количество предшествующих elem и link, но только тех, которые предшествуют section/link, ссылающемуся на текущий linkGroup/link. Далее к этому числу прибавляется количество link/elem, предшествующее данному elem. Именованный шаблон linkcount рекурсивно вычисляет количество elem, на которые ссылаются все link, переданные ему как аргумент links. Параметры index и result используются для реализации рекурсивной логики. -------------------- Хочешь получить мудрый совет - читай подписи участников форумов. Злой доктор Щасзаболит ![]() |
|||
|
||||
artemtereshkov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 4.2.2012 Репутация: нет Всего: нет |
Спасибо еще раз.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "XML/XSLT" | |
|
Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась. Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение. Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел Желаем удачи в Вашем деле! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | XML, XSL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |