Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как вызвать шаблон с именем в переменной 
:(
    Опции темы
Rigel
Дата 7.12.2008, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.7.2007
Где: Москва

Репутация: нет
Всего: нет



Нужно вызвать шаблон, имя которого заранее неизвестно. Когда вызываешь:
Код

<xsl:template name="page_content">
            <xsl:call-template name="view_admin_menu"/>
    </xsl:for-each>
</xsl:template>

то все нормально. Беда только в том, что шаблон привязан к модулю, а модуль может быть вставлен в страницу любой. Имя модуля (совпадает с именем шаблона) берется из XML. Делаю так:
Код

<xsl:template name="page_content">
    <xsl:for-each select="/rigel/page/page_template/modules/*">
        <xsl:variable name="curr_module" select="name()"/>
            <xsl:call-template name="Здесь нужно указать имя"/>
        <xsl:value-of select="$curr_module"/>
    </xsl:for-each>
</xsl:template>

Как вызвать шаблон, имя которого лежит в переменной? Я понимаю, что можно через template-match, но не получается вызвать его в нужном месте общего шаблона.
--------------------
С уважением. Rigel. http://www.smoliy.ru
PM MAIL WWW ICQ   Вверх
sir_nuf_nuf
Дата 7.12.2008, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 6.1.2008

Репутация: 5
Всего: 31



Цитата(Rigel @  7.12.2008,  16:12 Найти цитируемый пост)
Как вызвать шаблон, имя которого лежит в переменной? 

насколько я выяснил никак.

что вы понимаете под "модулем" ?

Цитата

<xsl:variable name="curr_module" select="name()"/>

Из этого я понял, что вы хотите вызывать разные шаблоны в зависимости от текущего элемента.
Ну тогда используйте:
Код

<xsl:template match="a/b[@x=1]"/>

тогда этот шаблон будет применен ко все элементам входного XML, которые удовлетворяют xpath условию a/b[@x=1]

Заметьте, что вызываемый шаблон зависит от XML, а не от XSD документа


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
Rigel
Дата 7.12.2008, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 24.7.2007
Где: Москва

Репутация: нет
Всего: нет



Под модулем я понимаю часть двигателя сайта. Через неименованные шаблоны я все сделал, хотя, как мне представляется, именованные были бы нагляднее и удобнее, впрочем, и так хорошо получилось. Спасибо за помощь.
--------------------
С уважением. Rigel. http://www.smoliy.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.0504 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.