Чтение онлайн

на главную

Жанры

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

Шрифт:

</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:stylesheet>

Вот

как это делается: сейчас я создал гиперссылки с атрибутом HREF, значение которого равно идентификатору элемента
<PLANET>
; при помощи этого же идентификатора я сделал каждый элемент
<PLANET>
назначением гиперссылки. Когда пользователь щелкает на гиперссылку в оглавлении, браузер прокручивает данные до соответствующей записи планеты в HTML-таблице. (Заметьте, что для того чтобы большинство браузеров осуществляли прокрутку, HTML-таблица должна быть вне пределов экрана.) Каждый процессор XSLT создает свои собственные идентификаторы; ниже приведен результат для процессора Xalan:

<HTML>

 <HEAD>

<TITLE>

The Planets Table

</TITLE>

 </HEAD>

 <BODY>

<H1>

The Planets Table

</H1>

<H2>

<A href="#">Mercury</A>

</H2>

<Р></Р>

<Н2>

<A href="#">Venus</A>

</H2>

<H2>

<A href="#">Earth</A>

</H2>

<Р></Р>

<TABLE BORDER="2">

<TR>

<TD>Name</TD>

<TD>Mass</TD>

<TD>Radius</TD>

<TD>Day</TD>

</TR>

<TR>

<TD><A NAME="N5">Mercury</A></TD>

<TD>.0553 (Earth = 1)</TD>

<TD>1516 miles</TD>

<TD>58.65 days</TD>

</TR>

<TR>

<TD><A NAME="N20">Venus</A></TD>

<TD>.815 (Earth = 1)</TD>

<TD>3716 miles</TD>

<TD>116.75 days</TD>

</TR>

<TR>

<TD><A NAME="N3B">Earth</A></TD>

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

<TD>2107 miles</TD>

<TD>1 days</TD>

</TR>

</TABLE>

 </BODY>

</HTML>

Результат

показан на рис. 6.3 (в том числе — оглавление из гиперссылок). Пользователю достаточно щелкнуть на гиперссылке к соответствующей записи в таблице.

Рис. 6.3. Использование сгенерированных идентификаторов в гиперссылках

Создание разделов CDATA

При преобразованиях XML-XML может потребоваться вывести разделы CDATA. В XSLT это легко осуществимо при помощи атрибута

cdata-section-elements
элемента
<xsl:output>
. Упомянутый атрибут позволяет указать, содержимое каких элементов следует заключить в раздел CDATA. Последнее может понадобиться, например, при создании элементов сценария, когда браузер требует заключения кода сценария в раздел CDATA.

В следующем примере я поместил содержимое элементов

<NAME>
и
<MASS>
в
planets.xml
в разделы
CDATA
:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

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

 <xsl:output method="xml" cdata-section-elements="NAME MASS"/>

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

<xsl:copy>

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

</xsl:copy>

 </xsl:template>

</xsl:stylesheet>

И вот результат:

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

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

<PLANETS>

 <PLANET>

<NAME><![CDATA[Mercury]]></NAME>

<MASS UNITS="(Earth = 1)"><![CDATA[.0553]]></MASS>

<DAY UNITS="days">58.65</DAY>

<RADIUS UNITS="miles">1516</RADIUS>

<DENSITY UNITS="(Earth = 1)">.983</DENSITY>

<DISTANCE UNITS="million miles">43.4</DISTANCE><!--B перигелии-->

 </PLANET>

 <PLANET>

<NAME><![CDATA[Venus]]></NAME>

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

Наследник и новый Новосиб

Тарс Элиан
7. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник и новый Новосиб

Сумеречный стрелок 8

Карелин Сергей Витальевич
8. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Сумеречный стрелок 8

Идеальный мир для Социопата 2

Сапфир Олег
2. Социопат
Фантастика:
боевая фантастика
рпг
6.11
рейтинг книги
Идеальный мир для Социопата 2

Краш-тест для майора

Рам Янка
3. Серьёзные мальчики в форме
Любовные романы:
современные любовные романы
эро литература
6.25
рейтинг книги
Краш-тест для майора

Идеальный мир для Социопата 6

Сапфир Олег
6. Социопат
Фантастика:
боевая фантастика
рпг
6.38
рейтинг книги
Идеальный мир для Социопата 6

Королевская Академия Магии. Неестественный Отбор

Самсонова Наталья
Любовные романы:
любовно-фантастические романы
8.22
рейтинг книги
Королевская Академия Магии. Неестественный Отбор

Ненаглядная жена его светлости

Зика Натаэль
Любовные романы:
любовно-фантастические романы
6.23
рейтинг книги
Ненаглядная жена его светлости

Кодекс Охотника. Книга V

Винокуров Юрий
5. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
4.50
рейтинг книги
Кодекс Охотника. Книга V

Его наследник

Безрукова Елена
1. Наследники Сильных
Любовные романы:
современные любовные романы
эро литература
5.87
рейтинг книги
Его наследник

Кодекс Охотника. Книга XXI

Винокуров Юрий
21. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXI

Бальмануг. (Не) Любовница 2

Лашина Полина
4. Мир Десяти
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Бальмануг. (Не) Любовница 2

Корпулентные достоинства, или Знатный переполох. Дилогия

Цвик Катерина Александровна
Фантастика:
юмористическая фантастика
7.53
рейтинг книги
Корпулентные достоинства, или Знатный переполох. Дилогия

Идеальный мир для Лекаря 3

Сапфир Олег
3. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 3

Возмездие

Злобин Михаил
4. О чем молчат могилы
Фантастика:
фэнтези
7.47
рейтинг книги
Возмездие