English | Français | Deutsch | Magyar | 中文 | >> Polski << ZVON > Tutorials > XSLT Tutorial
>> Strona 33 << | Poprzedni | Następny | Zawartość | Indeks elementu

Arkusz stylów może zawierać zmienne o tej samej nazwie. Arkusz stylów XSLT 1 pokazuje sposób na uzyskanie wartości zmiennej globalnej o nazwie identycznej jak lokalna. Arkusz stylów XSLT 2 pokazuje błędny sposób. Wartość lokalnej zmiennej jest przypisana do elementu xsl:when. Poza nim, obowiązuje zatem globalna zmienna.

Arkusz stylów XSLT 1

Źródło XML
<source>

<chapter>Chapter A</chapter>
<chapter>Chapter B</chapter>
<chapter>Chapter C</chapter>
<chapter>Chapter D</chapter>

</source>

Dane wyjściowe
<TABLE>
  <TR>
     <TD>First chapter : Chapter A</TD>
  </TR>
  <TR>
     <TD>Chapter : Chapter B</TD>
  </TR>
  <TR>
     <TD>Chapter : Chapter C</TD>
  </TR>
  <TR>
     <TD>Last chapter : Chapter D</TD>
  </TR>
</TABLE>

Widok HTML
First chapter : Chapter A
Chapter : Chapter B
Chapter : Chapter C
Last chapter : Chapter D
Arkusz stylów XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:variable name="text">Chapter</xsl:variable>
<xsl:template match="/">
     <TABLE>
          <xsl:for-each select="//chapter">
               <TR>
                    <TD>
                         <xsl:variable name="text">
                              <xsl:choose>
                                   <xsl:when test="position() = 1">First chapter</xsl:when>
                                   <xsl:when test="position()=last()">Last chapter</xsl:when>
                                   <xsl:otherwise>
                                        <xsl:value-of select="$text"/>
                                   </xsl:otherwise>
                              </xsl:choose>
                         </xsl:variable>
                         <xsl:value-of select="$text"/>
                         <xsl:text> : </xsl:text>
                         <xsl:value-of select="."/>
                    </TD>
               </TR>
          </xsl:for-each>
     </TABLE>
</xsl:template>


</xsl:stylesheet>


Arkusz stylów XSLT 2

Źródło XML
<source>

<chapter>Chapter A</chapter>
<chapter>Chapter B</chapter>
<chapter>Chapter C</chapter>
<chapter>Chapter D</chapter>

</source>

Dane wyjściowe
<TABLE>
  <TR>
     <TD>Chapter : Chapter A</TD>
  </TR>
  <TR>
     <TD>Chapter : Chapter B</TD>
  </TR>
  <TR>
     <TD>Chapter : Chapter C</TD>
  </TR>
  <TR>
     <TD>Chapter : Chapter D</TD>
  </TR>
</TABLE>

Widok HTML
Chapter : Chapter A
Chapter : Chapter B
Chapter : Chapter C
Chapter : Chapter D
Arkusz stylów XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:variable name="text">Chapter</xsl:variable>
<xsl:template match="/">
     <TABLE>
          <xsl:for-each select="//chapter">
               <TR>
                    <TD>
                         <xsl:choose>
                              <xsl:when test="position() = 1">
                                   <xsl:variable name="text">First chapter</xsl:variable>
                              </xsl:when>
                              <xsl:when test="position()=last()">
                                   <xsl:variable name="text">Last chapter</xsl:variable>
                              </xsl:when>
                              <xsl:otherwise>
                                   <xsl:variable name="text">
                                        <xsl:value-of select="$text"/>
                                   </xsl:variable>
                              </xsl:otherwise>
                         </xsl:choose>
                         <xsl:value-of select="$text"/>
                         <xsl:text> : </xsl:text>
                         <xsl:value-of select="."/>
                    </TD>
               </TR>
          </xsl:for-each>
     </TABLE>
</xsl:template>


</xsl:stylesheet>