Могу ли я связать xslt с другим xslt? - PullRequest
8 голосов
/ 10 февраля 2009

По сути, я хочу, чтобы один xslt стал моим «базовым» xslt, и хочу связать его с дочерними файлами xslt.

Возможно ли это?

Цель состоит в том, чтобы уменьшить дублирование кода.

У нас будет много дочерних xslt-файлов для различных клиентов со своим собственным форматированием, дополнительным текстом и т. Д., И мы не хотим повторять базовый код для каждого клиента xslt.

Я знаю, что мы можем форматировать в зависимости от типа клиента, но это сделает хслт загроможденным. В идеале просто хотел бы код, связанный с клиентом для каждого клиента.

Разве это не способ сделать xslt? Я новичок в xslt!

Ответы [ 4 ]

14 голосов
/ 10 февраля 2009
<xsl:import href="library/utility-include.xsl" />

Путь href относительно текущего xsl-файла. <xsl:import/> документация .

Помните, что вы должны написать свои строки импорта как первый дочерний элемент <xsl:stylesheet> или <xsl:transform>. Они не могут появляться во всех ваших файлах.

10 голосов
/ 10 февраля 2009

Как и все другие ответы, есть две инструкции XSLT :

<xsl:import>

и

<xsl:include>

, которые были разработаны именно для обеспечения этой возможности.

Возможно, вас заинтересует наличие полных библиотек шаблонов и функций, которые внутренне импортируют другие таблицы стилей библиотеки. Таблицы стилей библиотеки предназначены для импорта в таблицы стилей XSLT пользователя.

Например, обратите внимание на библиотеку FXSL для функционального программирования в XSLT.

4 голосов
/ 25 ноября 2009

Все остальные ответы дают вам достаточную информацию,
Здесь я хочу упомянуть еще одну важную вещь. Вы даже можете «передать (в обоих направлениях) параметры» между двумя (вызывающим и вызываемым файлом, если им необходимо предоставить какие-либо данные) xslt файлы ..
Эта функция играет важную роль в XSLT версии 1.0, может понадобиться в будущем.
:)

3 голосов
/ 10 февраля 2009

Да, вы можете - вы можете include и import другие XSLT.

Это хорошее место, чтобы начать изучать import, именно то, что вы ищете конкретно. include отличается, но о нем стоит знать.

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