Как использовать выражение в элементе xsl: include в обработке XSLT - PullRequest
3 голосов
/ 04 мая 2010

Мне нужно включить XSLT, который существует в 2 вариантах, в зависимости от значения параметра. Однако, кажется, невозможно написать выражение в атрибуте href элемента xsl: include. Мое последнее испытание выглядит так:

...

Используется двигатель XSLT Saxon 9.2.0.6

У кого-нибудь есть идеи о том, как я могу сделать что-то близкое к этому?

Ответы [ 2 ]

1 голос
/ 04 мая 2010

Как сказал Димитр, вы не можете этого сделать, но вы можете сгенерировать XSLT-файл с нуля или слегка изменить существующий XSLT-файл, вставив узел в код, подготавливающий преобразование.

1 голос
/ 04 мая 2010

Вы не можете .

Если вы знаете, что все возможные модули таблиц стилей xslt должны быть включены, вы можете использовать атрибут xsl:use-when, чтобы выборочно включать только некоторые из них. Однако xsl:use-when имеет свои ограничения. Цитировать Спецификация XSLT 2.0 :

" Любой элемент в пространстве имен XSLT может иметь атрибут use-when, значением которого является выражение XPath, которое может быть оценено статически ".

Там - это способ достижения динамического включения , но он требует некоторой инициализации не-XSLT:

Код (например, C # или Java или ... ваш язык программирования), который вызывает преобразование, может редактировать DOM загруженной (как XML) таблицы стилей XSLT и может устанавливать значение атрибута href любого <xsl:import> элемент по желаемому URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...