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

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

Шрифт:

<TD>3716 miles</TD>

<TD>116.75 days</TD>

</TR>

<TR>

<TD><B>Earth</B></TD>

<TD><B>1 (Earth = 1)</B></TD>

<TD><B>2107 miles</B></TD>

<TD><B>1 days</B></TD>

</TR>

</TABLE>

 </BODY>

</HTML>

Этот документ показан на рис. 6.4.

Рис. 6.4. Применение режимов обработки 

Режимы также очень удобны в том случае, когда требуется обработать один и тот же документ более одного раза; классический пример — создание оглавления.

Следующий пример демонстрирует создание оглавления. Я добавил в

planets.xml
оглавление в элементе
<TOC>
(table of contents, оглавление), имеющем три элемента
<ENTRY>
для каждой из планет. Заметьте, что здесь мне необходимо применить два шаблона, выбирающие элементы
<PLANET>
, — один для создания оглавления и еще один для копирования всех элементов
<PLANET>
в результирующий документ — я использую режимы для того, чтобы их различать. Начну с установки режима в «
toc
» и применения шаблона, который поддерживает этот режим и создает оглавление:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

 xmlns:xsl="http//www.w3.org/1999/XSL/Transform">

 <xsl:output method="xml"/>

 <xsl:template match="PLANETS">

<PLANETS>

<TOC>

<xsl:apply-templates mode="toc"/>

</TOC>

.

.

.

</PLANETS>

 </xsl:template>

 <xsl:template match="PLANET" mode="toc">

<ENTRY>

<xsl:value-of select="NAME"/>

</ENTRY>

 </xsl:template>

 .

 .

 .

Затем я применяю общий шаблон без каких-либо режимов обработки ко всем элементам и атрибутам, копируя их в результирующий документ (листинг 6.14).

Листинг 6.14. Создание оглавления

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:output method="xml"/>

 <xsl:template match="PLANETS">

<PLANETS>

<TOC>

<xsl:apply-templates mode="toc"/>

</TOC>

<xsl:apply-templates select="@*|node"/>

</PLANETS>

 </xsl:template>

 <xsl:template match="PLANET" mode="toc">

<ENTRY>

<xsl:value-of select="NAME"/>

</ENTRY>

 </xsl:template>

 <xsl:template match="@*|node">

<xsl:copy>

<xsl:apply-templates select="@*|node"/>

</xsl:copy>

 </xsl:template>

</xsl:stylesheet>

И, наконец, результат, выводящий

planets.xml
с оглавлением:

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xml" href="#"?>

<PLANETS>

 <TOC>

<ENTRY>Mercury</ENTRY>

<ENTRY>Venus</ENTRY>

<ENTRY>Earth</ENTRY>

 </TOC>

  • Читать дальше
  • 1
  • ...
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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