Шрифт:
<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:apply-templates select="MASS"/></TD>
<TD><xsl:apply-templates select="RADIUS"/></TD>
<TD><xsl:apply-templates select="DAY"/></TD>
</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>
Как видите, эта таблица стилей XSLT выглядит как XML-документ — и для этого есть основания, потому что она им и является. Все таблицы стилей XSLT являются также и документами XML, а раз так, то они должны быть хорошо форматированными документами XML С этими двумя документами —
planets.xml
(листингом 1.1) и связанной с ним таблицей стилей, planets.xsl
(листинг 1.2) — мы будем работать на протяжении всей книги, рассматривая различные возможные преобразования XSLT. Как вы свяжете эту таблицу стилей с XML-документом
planets.xml
? Как мы увидим в следующей главе, одним из способов это сделать является инструкция обработки XML <?xml-stylesheet?>
, использующая два атрибута. Первый атрибут — type
, который следует установить в «text/xml», чтобы указать, что используется таблица стилей XSLT. (Чтобы использовать таблицы стилей другого типа — каскадирующие таблицы стилей (CSS, cascading stylesheets), обычно использующиеся с HTML — следует задать «text/css».) Второй атрибут — href
, которому следует присвоить значение URI (вспомните, что XML использует не адреса URL, а идентификаторы URI, Uniform Resource Identifier) таблицы стилей: <?xml version="1.0"?>
<?xml-stylesheet type="text/xml" href="#"?>
<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><!--В перигелии-->
</PLANET>
.
.
.
Теперь при помощи процессора (processor) XSLT можно применить таблицу
planets.xsl
к planets.xml
и создать новый документ, planets.html
. Процессор XSLT создает новый файл planets.html
, который вы можете увидеть на рис. 1.2.