Книга: XSLT
Элемент
Разделы на этой странице:
Элемент <xsl:apply-imports>
Если вы импортируете таблицу стилей с шаблоном, например, для элемента <PLANET>
, и затем определите свой собственный элемент <PLANET>
, импортируемая версия будет перекрыта. Как можно получить доступ к перекрытой версии? Этому служит элемент <xsl:apply-imports>
.
В XSLT 1.0 у этого элемента нет атрибутов и нет содержимого. В рабочем проекте XSLT 1.1 элемент <xsl:apply-imports>
может обрабатывать параметры, поэтому он может содержать ноль или более элементов <xsl:with-param>
(подробнее о параметрах см. главу 9).
В качестве примера я модифицирую только что рассмотренный нами пример <xsl:import>
. В этом случае я добавлю еще один столбец в генерируемую в этом примере (листинг 2.12) HTML-таблицу, названную DATA, путем перекрытия шаблона <PLANET>
в rules.xsl
новым шаблоном <PLANET>
из planets.xsl
. Новый шаблон просто добавляет в таблицу новый столбец и затем применяет старый шаблон <PLANET>
к оставшимся данным. Доступ к старому шаблону осуществляется при помощи <xsl:apply-imports>
.
Листинг 2.12. Использование <xsl:apply-imports>
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns.xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="rules.xsl"/>
<xsl:template match="/PLANETS">
<HTML>
<HEAD>
<TITLE>
The Planets Table
</TITLE>
</HEAD>
<BODY>
<H1>
The Planets Table
</H1>
<TABLE BORDER="2">
<TR>
<TD>Date</TD>
<TD>Name</TD>
<TD>Mass</TD>
<TD>Radius</TD>
<TD>Day</TD>
<xsl:apply-templates/>
</TR>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="PLANET">
<TR>
<TD>4/1/2002</TD>
<xsl:apply-imports/>
</TR>
</xsl:template>
</xsl:stylesheet>
А вот как выглядит новая версия rules.xsl
(листинг 2.13).
Листинг 2.13. Новая версия rules.xsl
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="PLANET">
<TD><xsl:value-of select="NAME"/></TD>
<TD><xsl:value-of select="MASS"/></TD>
<TD><xsl:value-of select="RADIUS"/></TD>
<TD><xsl:value-of select="DAY"/></TD>
</xsl:template>
</xsl:stylesheet>
Результаты можно видеть на рис. 2.4. Я создал один шаблон при помощи другого, что является ближайшим аналогом в XSLT для наследования из объектно-ориентированной парадигмы.
Рис. 2.4. Использование <xsl:apply-imports>
В рабочем проекте XSLT 1.1 с элементом <xsl:apply-imports>
можно использовать параметры таблицы стилей, что означает, что вы можете использовать элементы <xsl:with-param>
в качестве содержимого <xsl:apply-imports>
. Подробное обсуждение параметров и элемента <xsl:with-param>
приводится в главе 9.
- Деревья и узлы
- Модель информационного множества против модели дерева XSLT
- Работа с элементами XSLT
- Инструкция обработки
- Элемент
- Элементы таблиц стилей высокого уровня
- Элемент
- Тела шаблонов
- Элемент
- Доступ к значениям узлов
- Поддержка XML Base
- Выбор методов вывода
- Упрощенные таблицы стилей
- Встроенные таблицы стилей
- Элемент
- Элемент
- Элемент
- Преобразование документов XML при помощи Internet Explorer
- Создание свободно позиционируемых элементов
- 6.4. Рабочий лист Excel и его структурные элементы
- Письма с элементами графики и вложениями
- Элемент STYLE
- 4.4. Логические элементы и синтез логических схем
- 4.7 Структурные элементы SAN
- Добавление, изменение и удаление элементов списка
- Восстановление элементов списка из Корзины
- Вложение файлов в элементы списков
- Логические элементы
- 5.2. Основные приемы работы, элементы текстового редактора
- Правило 16. Группируйте связанные между собой элементы