<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», который я и использую — это &#232;):

<?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>

Вы читаете XSLT
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату