<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>
.
.
.
А вот как выглядит параметризованный шаблон «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>