Элемент <xsl:call-template>: применение именованных шаблонов
Элемент <xsl:call-template>: применение именованных шаблонов
У элемента <xsl:template> есть атрибут name, задающий имя шаблона. Предположим, у меня есть элемент буквального результата, состоящий из двух элементов <BR> и двух элементов <HR> HTML, при помощи которого я создаю в документах HTML вертикальный разделитель:
<BR/>
<HR/>
<BR/>
<HR/>
Тогда я могу создать шаблон с именем «separator» (разделитель), использующий этот элемент буквального результата:
<xsl:template name="separator">
<BR/>
<HR/>
<BR/>
<HR/>
</xsl:template>
Это именованный шаблон — для его создания нужно только присвоить имя атрибуту name элемента <xsl:template>.
Заметьте, что этот шаблон не установлен для выбора чего-то конкретного. Для активизации шаблона необходимо вызвать его явно. Для этого служит элемент <xsl:call-template>, обладающий только одним атрибутом:
• name (обязательный). Имя вызываемого шаблона, устанавливается в QName.
Следующий пример демонстрирует применение нашего шаблона «separator», для чего мне нужно было только вызвать его в соответствующих местах:
<?xml version="1.0"?>
<xsl:stylesheet version="1.1"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/PLANETS">
<HTML>
<HEAD>
<TITLE>
The Planets Table </TITLE>
</HEAD>
<BODY>
<H1>
The Planets Table
</Н1>
<xsl:call-template name="separator"/>
<TABLE BORDER="2">
<TR>
<TD>Name</TD>
<TD>Mass</TD>
<TD>Radius</TD>
<TD>Day</TD>
</TR>
<xsl:apply-templates/>
</TABLE>
<xsl:call-template name="separator"/>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="PLANET">
<TR>
<TD><xsl:value-of select="NAME"/></TD>
<TD><xsl:apply-templates select="MASS"/></TD>
<TD><xsl:apply-templates select="RADIUS"/></TD>
<TD><xsl:apply-templates select="DAY"/></TD>
</TR>
</xsl:template>
<xsl:template match="MASS">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
<xsl:value-of select="@UNITS"/>
</xsl:template>
<xsl:template match="RADIUS">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
<xsl:value-of select="@UNITS"/>
</xsl:template>
<xsl:template match="DAY">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
<xsl:value-of select="@UNITS"/>
</xsl:template>
<xsl:template name="separator">
<BR/>
<HR/>
<BR/>
<HR/>
</xsl:template>
</xsl:stylesheet>
Вот результат. Обратите внимание: элементы <BR> и <HR> были вставлены так, как требовалось:
<HTML>
<HEAD>
<TITLE>
The Planets Table
</TITLE>
</HEAD>
<BODY>
<H1>
The Planets Table
</H1>
<BR>
<HR>
<BR>
<HR>
<TABLE BORDER="2">
<TR>
<TD>Name</TD>
<TD>Mass</TD>
<TD>Radius</TD>
<TD>Day</TD>
</TR>
<TR>
<TD>Mercury</TD>
<TD>.0553 (Earth = 1)</TD>
<TD>1516 miles</TD>
<TD>58.65 days</TD>
</TR>
<TR>
<TD>Venus</TD>
<TD>.815 (Earth = 1)</TD>
<TD>3716 miles</TD>
<TD>116.75 days</TD>
</TR>
<TR>
<TD>Earth</TD>
<TD>1 (Earth = 1)</TD>
<TD>2107 miles</TD>
<TD>1 days</TD>
</TR>
</TABLE>
<BR>
<HR>
<BR>
<HR>
</BODY>
</HTML>
Результирующий документ показан на рис. 9.1.
Рис. 9.1. Вызов именованного шаблона
Таким образом, вы можете обращаться к элементу буквального результата по имени, легко помещая его в результирующий документ. Но это слишком статично — элемент буквального результата всегда один и тот же. Впрочем, как можно заметить, вызов именованного шаблона во многом похож на вызов подпрограммы в языке программирования. Так же, как вы передаете данные в подпрограмму, вы можете передать данные в именованные шаблоны при помощи параметров.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Использование именованных каналов
Использование именованных каналов Функция CreateNamedPipe создает первый экземпляр именованного канала и возвращает дескриптор. При вызове этой функции указывается также максимально допустимое количество экземпляров каналов, а следовательно, и количество клиентов,
Создание именованных каналов
Создание именованных каналов Серверами именованных каналов могут быть только системы на основе Windows NT (как обычно, здесь имеются в виду версия 4.0 и последующие); системы на базе Windows 9x могут выступать только в роли клиентов.Прототип функции CreateNamedPipe представлен ниже. HANDLE
Подключение клиентов именованных каналов
Подключение клиентов именованных каналов Как показано на рис. 11.2, для подключения клиента к именованному каналу применяется функция CreateFile, при вызове которой указывается имя именованного канала. Часто клиент и сервер выполняются на одном компьютере, и в этом случае для
Функции состояния именованных каналов
Функции состояния именованных каналов Предусмотрены две функции, позволяющие получать информацию о состоянии каналов, и еще одна функция, позволяющая устанавливать данные состояния канала. Краткая характеристика этих функций приводится ниже, а одна из этих функций
Функции транзакций именованных каналов
Функции транзакций именованных каналов На рис. 11.2 показана типичная конфигурация клиента, в которой клиент выполняет следующие операции:• Открывает экземпляр канала, создавая долговременное соединение с сервером и занимая экземпляр канала.• Периодически посылает
Сравнение именованных каналов и сокетов
Сравнение именованных каналов и сокетов Именованные каналы, описанные в главе 11, очень похожи на сокеты, но в способах их использования имеются значительные различия.• Именованные каналы могут быть ориентированными на работу с сообщениями, что значительно упрощает
Защита именованных каналов
Защита именованных каналов Хотя соответствующая часть кода в листинге программы 11.3 опущена, сервер, полный программный код которого находится на Web-сайте книги, предоставляет возможность защиты его именованных каналов для предотвращения доступа к ним пользователей, не
Элемент <xsl:template>
Элемент <xsl:template> Шаблоны XSL позволяют задать способ выполнения вашего преобразования. Каждый элемент <xsl:template> устанавливается для выбора одного узла (который может содержать другие узлы) или ряда узлов в исходном документе, а также точного указания способа
Глава 3 Создание и применение шаблонов
Глава 3 Создание и применение шаблонов Эта глава полностью посвящена созданию шаблонов и работе с ними как с основой таблиц стилей XSLT. Каждый шаблон образует правило, которое процессор XSLT пытается применить к исходному документу.В главе 2 мы кратко рассмотрели таблицы
call - Выполнить сценарий удаленного клипа
call - Выполнить сценарий удаленного клипа call(Глобальная функция)Вызывает из текущего скрипта скрипт, который прикреплен к указываемому кадруСинтаксис:call(frameLabel)call(frameNumber)Аргументы:Описание:Функция call() выполняет сценарий, прикрепленный к кадру с меткой frmaeLabel или номером
Дополнение Pamela Call Recorder
Дополнение Pamela Call Recorder Из данного подраздела вы узнаете, как загрузить доступное для программы Skype дополнение Pamela Call Recorder. Оно позволит вам записывать входящие и исходящие звонки, добавлять звуки. Установим дополнение для программы Skype и рассмотрим работу с ним.1.
Применение шаблонов языка C++.
Применение шаблонов языка C++. Альтернативой приведенной выше реализации может служить реализация класса Singleton при помощи шаблонов языка С++. Преимущество такого подхода заключается в автоматической параметризации метода Instance(), что приводит к отсутствию необходимости
2.1.2. Создание отчетов с помощью Report Template Builder
2.1.2. Создание отчетов с помощью Report Template Builder Собственный шаблон отчета можно создать с помощью диалога Report Template Builder. Пункт меню Tools/Reports Builder вызывает диалог Report Templates (рис. 2.1.3). Кнопка New служит для создания нового шаблона, кнопка Edit - для редактирования существующего.
Элемент xsl:template
Элемент xsl:template Синтаксис этого элемента приведен ниже:<xsl:template match="пaттерн" name="имя" priority="число" mode="имя"> <!-- Содержимое: несколько элементов xsl:param, тело шаблона --></xsl:template>Элемент верхнего уровня xsl:template определяет в преобразовании шаблонное правило, или просто
Элемент xsl:call-template
Элемент xsl:call-template Приведем синтаксис этого элемента:<xsl:call-template name="имя"> <!-- Содержимое: несколько элементов xsl:with-param --></xsl:call-template>Обязательный атрибут name указывает имя шаблона, который вызывается этой инструкцией. Например, шаблон с именем "head", приведенный выше,
Инсталляция с помощью Установщика шаблонов (Template Installer) Joomla!
Инсталляция с помощью Установщика шаблонов (Template Installer) Joomla! После создания пакета шаблона и удаления всех его предыдущих версий можно перейти к инсталляции нового шаблона (в главном меню админчасти выберите Extensions | Install/Uninstall).Здесь можно установить zip пакет с вашим