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

ЖАНРЫ

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

Шрифт:

<xsl:call-template name="COLORS">

<xsl:with-param name="COLOR" select="'BLUE'"/>

</xsl:call-template>

</xsl:if>

 </xsl:template>

 <xsl:template name="COLORS"> <xsl:param name="COLOR"/>

<TR>

<TD>

<FONT COLOR="{$COLOR}"><xsl:value-of select="NAME"/></FONT>

</TD>

<TD>

<FONT COLOR="{$COLOR}"><xsl:apply-templates select="MASS"/></FONT>

</TD>

<TD>

<FONT COLOR="{$COLOR}"><xsl:apply-templates select="RADIUS"/></FONT>

</TD>

<TD>

<FONT COLOR="{$COLOR}"><xsl:apply-templates select="DAY"/></FONT>

</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="DAY">

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

<xsl:text> </xsl:text>

<xsl:value-of select="@UNITS"/>

 </xsl:template>

</xsl:stylesheet>

И

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

<HTML>

 <HEAD>

<TITLE>

The Colorful Planets Table

</TITLE>

 </HEAD>

 <BODY>

<H1>

The Colorful Planets Table

</H1>

<TABLE BORDER="2">

<TR>

<TD>Name</TD>

<TD>Mass</TD>

<TD>Radius</TD>

<TD>Day</TD>

</TR>

<TR>

<TD><FONT COLOR="RED">Mercury</FONT></TD>

<TD><FONT COLOR="RED">.0553 (Earth = 1)</FONT></TD>

<TD><FONT COLOR="RED">1516 miles</FONT></TD>

<TD><FONT COLOR="RED">58.65 days</FONT></TD>

</TR>

<TR>

<TD><FONT COLOR="GREEN">Venus</FONT></TD>

<TD><FONT COLOR="GREEN">.815 (Earth = 1)</FONT></TD>

<TD><FONT COLOR="GREEN">3716 miles</FONT></TD>

<TD><FONT COLOR="GREEN">116.75 days</FONT></TD>

</TR>

<TR>

<TD><FONT COLOR="BLUE">Earth</FONT></TD>

<TD><FONT COLOR="BLUE">1 (Earth = 1)</FONT></TD>

<TD><FONT COLOR="BLUE">2107 miles</FONT></TD>

<TD><FONT COLOR="BLUE">1 days</FONT></TD>

</TR>

</TABLE>

 </BODY>

</HTML>

Этот

результирующий документ показан на рис. 9.2 (пусть даже в черно-белом исполнении).

Рис. 9.2. Вызов именованного шаблона с параметрами

В следующем примере я использую параметры для локализации используемого в шаблоне языка. Я создаю новый шаблон

localize
с параметром
language
. Если language установлен в «
en
», означая английский, результирующий документ будет озаглавлен «Planets»; если
language
установлен в «
de
», немецкий, результирующий документ будет озаглавлен «Planeten», а если в «
fr
», французский, результирующий документ будет озаглавлен «Planetes».

Здесь я вызываю шаблон

localize
, установив
language
в «fr»:

<?xml version="1.0"?>

<xsl:stylesheet version="1.1"

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

 <xsl:template match="/PLANETS">

<HTML>

<HEAD>

<TITLE>

<xsl:call-template name="localize">

<xsl:with-param name="language" select="'fr'"/>

</xsl:call-template>

</TITLE>

</HEAD>

<BODY>

<H1>

<xsl:call-template name="localize">

<xsl:with-param name="language" select="'fr'"/>

</xsl:call-template>

Поделиться с друзьями: