Шрифт:
</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>
.
.
.
А вот как выглядит параметризованный шаблон «COLORS». Заметьте, что я объявляю параметр
COLOR
в шаблоне при помощи элемента <xsl:param>
(и заметьте, что в HTML 4.01 символьный элемент для «е» в «Planetes», который я и использую — это è
): <?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>
</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 name="localize">
<xsl:param name="language"/>
<xsl:if test="$language='en'">
<xsl:text>Planets</xsl:text>