transform. XSL преобразование

^документ.transform[шаблон]
^документ.transform[шаблон][XSLT-параметры]

Осуществляет XSL-преобразование
документа по шаблону. Возможно задание XSLT-параметров.

Шаблон - или путь_к_файлу_с_шаблоном, или xdoc документ.
Parser может считать XML из произвольного источника, см. раздел «Чтение XML из произвольного источника».

XSLT-параметры
- хеш строк, доступных из шаблона через <xsl:param … />.

Внимание: Parser (в виде модуля к Apache или IIS) кеширует результат компиляции
файла_с_шаблоном во внутреннюю форму, повторная компиляция не производится, а скомпилированный шаблон берется из кеша. Вариант CGI также кеширует шаблон, но только на один запрос. Шаблон перекомпилируется при изменении даты файлов шаблона.

Пример (см. также «Урок 6. Работаем с XML»)
# входной xdoc документ
$sourceDoc[^xdoc::
load[article.xml]]

# преобразование xdoc документа шаблоном article.xsl
$transformedDoc[^sourceDoc.transform[article.xsl]]

# выдача результата в HTML виде
^transformedDoc.
string[
    
$.method[html]
]

Если
шаблон не считывается с диска, а создается динамически, важным вопросом становится «а откуда загрузятся <xsl:import href="some.xsl"/>?», обратите внимание на возможность задания базового пути: «Параметр создания нового документа: Базовый путь».


User comments:

DivineArtS 19.05.2010 19:04

для тех, кто задумывается, что такое [XSLT-параметры]

цитата:

Luzhnikovskiy 16.09.2003 18:15 ( http://www.parser.ru/forum/?id=20922 )

Сначала определяем параметры как хэш.
^doc.transform[шаблон][
$.param1[value1]
$.param2[value2]
]
А потом в нужном темплейте просто объявляем их и юзаем:
<xsl:template ...>
<xsl:param name="param1" />
<xsl:param name="param2" />
<xsl:value-of select="concat($param1,' - ',$param2)" />
</xsl:template>
Вернется строчка "value1 - value2".

Да, не забываем - эти параметры - строки, т.е. если значение будет типа "//node/@aatrib", то эта строка и получится в результате, а не значение XPath-выражение, как могло бы показаться по внешнему виду.

сам долго искал, думаю кому-нибудь пригодится


In order to add comments you must register.
Copyright © 1997–2017 Art. Lebedev Studio | http://www.artlebedev.ru Дата обновления: 28.05.2004