XSLT
Шрифт:
Листинг 2.8. planets.xml со встроенной таблицей стилей
<?xml version="1.0"?>
<?xml-stylesheet type="text/xml" href="#"?>
<!DOCTYPE PLANETS [
<!ELEMENT PLANET (CUSTOMER)*>
<!ELEMENT CUSTOMER (NAME,MASS,RADIUS,DAY)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT MASS (#PCDATA)>
<!ELEMENT RADIUS (#PCDATA)>
<!ELEMENT DAY (#PCDATA)>
<!ELEMENT xsl:stylesheet (xsl:template)*>
<!ELEMENT xsl:template (#PCDATA)>
<!ATTLIST xsl:stylesheet
id ID #REQUIRED
version CDATA #IMPLIED>
]>
<PLANETS>
<PLANET>
<NAME>Mercury</NAME>
<MASS UNITS="(Earth = 1)">.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>Venus</NAME>
<MASS UNITS="(Earth = 1)">.815</MASS>
<DAY UNITS="days">116.75</DAY>
<RADIUS UNITS="miles">3716</RADIUS>
<DENSITY UNITS="(Earth = 1)">.943</DENSITY>
<DISTANCE UNITS="million miles">66.8</DISTANCE><!--B перигелии-->
</PLANET>
<PLANET>
<NAME>Earth</NAME>
<MASS UNITS="(Earth = 1)">1</MASS>
<DAY UNITS="days">1</DAY>
<RADIUS UNITS="miles">2107</RADIUS>
<DENSITY UNITS="(Earth = 1)">1</DENSITY>
<DISTANCE UNITS="million miles">128.4</DISTANCE><!--B перигелии-->
</PLANET>
<xsl:stylesheet version="1.0" id="stylesheet"
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
</H1>
<TABLE BORDER="2">
<TR>
<TD>Name</TD>
<TD>Mass</TD>
<TD>Radius</TD>
<TD>Day</TD>
</TR>
<xsl:apply-templates/>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="PLANET">
<TR>
<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>
</TR>
</xsl:template>
<xsl:template match="xsl:stylesheet"></xsl:template>
</xsl:stylesheet>
</PLANETS>
Следует
embedded.xml
в элемент <xsl:stylesheet>
, я должен был предоставить шаблон таблицы стилей для элемента <xsl:stylesheet>
. (Если бы я этого не сделал, текст из текстовых узлов таблицы стилей был бы скопирован в результирующий документ, — это обсуждается в главе 3 в разделе, посвященном правилам по умолчанию для шаблонов.) Я оставил этот элемент пустым, поместив в конце таблицы стилей в embedded.xml
следующую строку, поэтому из самой таблицы стилей в результирующий документ ничего не копируется: <xsl:template match="xsl:stylesheet"></xsl:template>
Теперь в Saxon я могу из
embedded.xml
создать planets.html
. В Windows для указания того, что используется встроенная таблица стилей, в Saxon служит параметр – а
: C:\planets>saxon -a embedded.xml > planets.html
Элемент <xsl:include>
Другой способ вставить таблицы стилей внутрь других документов — использовать элемент <xsl:include>, позволяющий включить содержимое файла в определенное место в таблице стилей. У этого элемента только один атрибут:
Поделиться:
Популярные книги
Новобрачная
1. Невеста
Любовные романы:
исторические любовные романы
9.09
рейтинг книги
Аномальный наследник. Том 1 и Том 2
1. Аномальный наследник
Фантастика:
боевая фантастика
альтернативная история
8.50
рейтинг книги
И вспыхнет пламя
2. Голодные игры
Фантастика:
социально-философская фантастика
боевая фантастика
9.44
рейтинг книги
Барону наплевать на правила
7. Закон сильного
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Запасная дочь
Фантастика:
фэнтези
6.40
рейтинг книги
Возвышение Меркурия. Книга 5
5. Меркурий
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Ученичество. Книга 1
1. Государственный маг
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Купец VI ранга
6. Купец
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Корсар
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
6.29
рейтинг книги
Неверный
Любовные романы:
современные любовные романы
5.50
рейтинг книги
Девятый
1. Девятый
Фантастика:
боевая фантастика
попаданцы
9.15
рейтинг книги
Убивать чтобы жить 7
7. УЧЖ
Фантастика:
героическая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Полковник Империи
3. Безумный Макс
Фантастика:
альтернативная история
6.58
рейтинг книги
Аргумент барона Бронина 2
2. Аргумент барона Бронина
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00