English | Français | Deutsch | >> Magyar << | 中文 | Polski ZVON > Tutorials > XSLT Tutorial
>> Oldal 34 << | Előző | Következő | Tartalom | Elem index

A sablonoknak t?rtén? paraméter átadás az xsl:with-param elem segítségével t?rténhet meg. Amennyiben a sablon tartalmaz egy xsl:param elemet, melynek a neve megegyezik az xsl:with-param name attribútumával, ez megkapja azt az értéket. Az XSLT stíluslap 1 egy tipikus példát mutat be. Amennyiben egy változót szeretnél átadni, ezt definiálnod kell az xsl:param elem segítségével. Nézd meg az XSLT stíluslap 2 példát, amely a helytelen módszert mutatja be.

XSLT stíluslap 1

XML forrás
<source>

<number>1</number>
<number>3</number>
<number>4</number>
<number>17</number>
<number>8</number>

</source>

Kimenet
<TABLE>
  <TR>
     <TH>1 (odd)</TH>
  </TR>
  <TR>
     <TH>3 (odd)</TH>
  </TR>
  <TR>
     <TH>4 (even)</TH>
  </TR>
  <TR>
     <TH>17 (odd)</TH>
  </TR>
  <TR>
     <TH>8 (even)</TH>
  </TR>
</TABLE>

HTML nézet
1 (odd)
3 (odd)
4 (even)
17 (odd)
8 (even)
XSLT stíluslap
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <TABLE>
          <xsl:for-each select="//number">
               <TR>
                    <TH>
                         <xsl:choose>
                              <xsl:when test="text() mod 2">
                                   <xsl:apply-templates select=".">
                                        <xsl:with-param name="type">odd</xsl:with-param>
                                   </xsl:apply-templates>
                              </xsl:when>
                              <xsl:otherwise>
                                   <xsl:apply-templates select="."/>
                              </xsl:otherwise>
                         </xsl:choose>
                    </TH>
               </TR>
          </xsl:for-each>
     </TABLE>
</xsl:template>

<xsl:template match="number">
     <xsl:param name="type">even</xsl:param>
     <xsl:value-of select="."/>
     <xsl:text> (</xsl:text>
     <xsl:value-of select="$type"/>
     <xsl:text>)</xsl:text>
</xsl:template>


</xsl:stylesheet>


XSLT stíluslap 2

XML forrás
<source>

<number>1</number>
<number>3</number>
<number>4</number>
<number>17</number>
<number>8</number>

</source>

Kimenet
<TABLE>
  <TR>
     <TH>1 (even)</TH>
  </TR>
  <TR>
     <TH>3 (even)</TH>
  </TR>
  <TR>
     <TH>4 (even)</TH>
  </TR>
  <TR>
     <TH>17 (even)</TH>
  </TR>
  <TR>
     <TH>8 (even)</TH>
  </TR>
</TABLE>

HTML nézet
1 (even)
3 (even)
4 (even)
17 (even)
8 (even)
XSLT stíluslap
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <TABLE>
          <xsl:for-each select="//number">
               <TR>
                    <TH>
                         <xsl:choose>
                              <xsl:when test="text() mod 2">
                                   <xsl:apply-templates select=".">
                                        <xsl:with-param name="type">odd</xsl:with-param>
                                   </xsl:apply-templates>
                              </xsl:when>
                              <xsl:otherwise>
                                   <xsl:apply-templates select="."/>
                              </xsl:otherwise>
                         </xsl:choose>
                    </TH>
               </TR>
          </xsl:for-each>
     </TABLE>
</xsl:template>

<xsl:template match="number">
     <xsl:variable name="type">even</xsl:variable>
     <xsl:value-of select="."/>
     <xsl:text> (</xsl:text>
     <xsl:value-of select="$type"/>
     <xsl:text>)</xsl:text>
</xsl:template>


</xsl:stylesheet>