powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Вызов шаблона для определённого набора значений.
3 сообщений из 3, страница 1 из 1
Вызов шаблона для определённого набора значений.
    #37820358
Привет всем.

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

XML (смаппированные результаты курсоров БД):
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
<ROWSETS>
  <ROWSET name='CAPITAL_INVESTMENTS_PLAN'>
     <ROW>  ... </ROW> 
  </ROWSET>
  <ROWSET name='CAPITAL_INVESTMENTS_FACT'>
     <ROW>  ... </ROW> 
  </ROWSET>
  ...
</ROWSETS>


XSLT:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<xsl:variable name="row_names">
        <row>CAPITAL_INVESTMENTS_PLAN</row>
        <row>CAPITAL_INVESTMENTS_FACT</row>
        <row>BASIC_ASSETS_COMMISSIONING</row>
</xsl:variable>
<!-- запоминаем контекст текущего обрабатываемого документа, иначе внутри цикла не добраться -->
<xsl:variable name="outer_root" select="/"/>
<xsl:for-each select="$row_names/*">
    <xsl:call-template name="ROW_outline">
        <!-- в параметр передаём ноду по фильтру : атрибут name равен выбранному значению -->
        <xsl:with-param name="node" select="$outer_root//ROWSET[@name=current()]"/>
    </xsl:call-template>
</xsl:for-each>



Вопрос в следующем : можно ли убрать создание переменной и привести цикл к виду
<xsl:for-each select="'CAPITAL_INVESTMENTS_PLAN','CAPITAL_INVESTMENTS_FACT','BASIC_ASSETS_COMMISSIONING'">

и возможно ли в цикле обратится к контексту внешнего документа?

Спасибо.
...
Рейтинг: 0 / 0
Вызов шаблона для определённого набора значений.
    #37820622
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бондарюк Андрейвозможно ли в цикле обратится к контексту внешнего документа?В такой формулировке нет. Вы в цикле начинаете перебирать дерево, которое, не является частью исходного документа.

Если представить документ в виде дерева с ветками и листьями, то циклБондарюк Андрей
Код: xml
1.
<xsl:for-each select="$row_names/*">

Равносилен прыжку на ветку соседнего дерева. Аналогично ведет себя функция document()
...
Рейтинг: 0 / 0
Вызов шаблона для определённого набора значений.
    #37820945
Добрый день.
_Vasilisk_Равносилен прыжку на ветку соседнего дерева. Аналогично ведет себя функция document()
Спасибо. Теперь дошло - в головушке всё встало на свои места.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Вызов шаблона для определённого набора значений.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]