Я знаю, что мне нужно использовать xsl:import
, но я не знаю, как я могу называть name
шаблонов.Как импортировать шаблоны из другой таблицы стилей?
Как это сделать?
Я знаю, что мне нужно использовать xsl:import
, но я не знаю, как я могу называть name
шаблонов.Как импортировать шаблоны из другой таблицы стилей?
Как это сделать?
Использование <xsl:import>
применения <xsl:call-template>
довольно легко:
Пример XML с именем f.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<a>abc</a>
<b>cde</b>
</root>
Главная образец XSLT f.xslt
:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="f1.xslt"/>
<xsl:template match="/root">
A: <xsl:value-of select="a/text()" />
<xsl:call-template name="secondTemplate" />
</xsl:template>
</xsl:stylesheet>
Включать образец XSLT f1.xslt
:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="secondTemplate">
B: <xsl:value-of select="b/text()" />
</xsl:template>
</xsl:stylesheet>
Выход:
<?xml version="1.0"?>
A: abc
B: cde
Таким образом, первый XSLT (f.xslt
) не называют второй XSLT (f1.xslt
) - который импортируется с <xsl:import ...>
- через именованный шаблон, который доступен с <xsl:call-template name="secondTemplate" />
линии.
Вы можете использовать <xsl:call-template>
для вызова функции на традиционном языке программирования.
Вы можете определить функции в XSLT, как этот простой, который выводит строку.
<xsl:template name="dosomething">
<xsl:text>A function that does something</xsl:text>
</xsl:template>
Эта функция может быть вызвана через <xsl:call-template name="dosomething">
.
Да, но у меня есть тонна шаблонов, уже сделанных в XSLT-файле, и я хочу импортировать их в другой файл XSLT, поэтому я могу их повторно использовать. Я не знаю, как это сделать ... Я знаю, что мне нужно использовать 'xsl: import', но не знаю, как вызвать шаблоны впоследствии. – Guilhermeffable
вам не нужно импортировать все из них, достаточно импортировать файл вверх по потоку. –
при импорте другого файла xslt, который будет автоматически применяться для вашего преобразования. – Rupesh
Ваш вопрос непонятен. Когда вы используете 'xsl: import', ** all **, импортируются шаблоны импортированной таблицы стилей. Затем вы вызываете или применяете их, как если бы они были частью вашей таблицы стилей. Для получения дополнительной информации читайте: http://www.xml.com/pub/a/2000/11/01/xslt/ –