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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передать в шаблон ветвь или путь к ней, при вызове call-template 
V
    Опции темы
Rigel
Дата 17.8.2009, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Идея такая - есть именованный шаблон, он прекрасно работает но теперь нужно ввести в него цикл, обходящий один контейнер с несколькими подузлами. Беда в том, что при разных вызовах темплайта этот контейнер расположен в разных местах, потому что структура дерева строится, в частности, и из имени текущего модуля. Есть ли возможность передать в шаблон или путь как параметр, чтобы уже внутри циклом его обойти - или контейнер с содержимым, причем так, чтобы его можно было обойти в цикле. Кто-нибудь знает, как это решить?
--------------------
С уважением. Rigel. http://www.smoliy.ru
PM MAIL WWW ICQ   Вверх
maxim1000
Дата 17.8.2009, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



можно делать параметры для шаблонов и при вызове давать им значения:
http://www.w3.org/TR/xslt20/#parameters


--------------------
qqq
PM WWW   Вверх
Rigel
Дата 17.8.2009, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(maxim1000 @ 17.8.2009,  14:32)
можно делать параметры для шаблонов и при вызове давать им значения:
http://www.w3.org/TR/xslt20/#parameters

Это очевидно, если значение - какая-то величина. А вот если это путь в XML-дереве?
--------------------
С уважением. Rigel. http://www.smoliy.ru
PM MAIL WWW ICQ   Вверх
diadiavova
Дата 17.8.2009, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Если под контейнером понимается узел документа, то он легко может быть передан как параметр
XML
Код

<?xml version="1.0" encoding="utf-8"?>
<root>
  <container>
    <item value="1"/>
    <item value="2"/>
    <item value="3"/>
    <item value="4"/>
  </container>
</root>


XSLT
Код

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl" >
  <xsl:output method="text" indent="yes"/>

  <xsl:template match="/">
    <xsl:call-template name="items">
      <xsl:with-param name="container" select="root/container"/>
    </xsl:call-template>
  </xsl:template>

  <xsl:template name="items">
    <xsl:param name="container"/>
    <xsl:for-each select="$container/*">
      item value = <xsl:value-of select="@value"/>;
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>


Вывод
Код

      item value = 1;
    
      item value = 2;
    
      item value = 3;
    
      item value = 4;



--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Rigel
Дата 17.8.2009, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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.0531 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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