XSLT
Шрифт:
<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>
Поделиться с друзьями: