Вход/Регистрация
XSLT
вернуться

Холзнер Стивен

Шрифт:

 <xsl:template match="/PLANETS">

<HTML>

<HEAD>

<TITLE>

The Planets Table

</TITLE>

</HEAD>

<BODY>

<H1>

The Planets Table

</H1>

<TABLE BORDER="2">

<TD>Name</TD>

<TD>Mass</TD>

<TD>Radius</TD>

<TD>Day</TD>

<xsl:apply-templates/>

</TABLE>

</BODY>

</HTML>

 </xsl:template>

</xsl:stylesheet>

Элемент <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="#"/>

 <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 для наследования из объектно-ориентированной парадигмы.

  • Читать дальше
  • 1
  • ...
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: