English | Français | >> Deutsch << | Magyar | 中文 | Polski ZVON > Tutorials > XSLT Tutorial
>> Seite 33 << | Zurück | Vor | Inhalt | Element-Index

Eine Vorlage kann verschieden Variablen mit dem selben Namen enthalten. XSLT Stylesheet 1 zeigt ein Weg, wie der Wert einer globalen Variablen ermittelt werden, die den selben Namen besitzt, wie eine lokale Variable. Das XSLT Stylesheet 2 zeigt einen inkorrekten Ansatz. Der Wert der lokalen Variablen ist an das xsl:when Element gebunden. Der Rest des Templates sieht in diesem Fall nur die globale Variable.

XSLT Stylesheet 1

XML Quelltext
<source>

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

</source>

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

HTML-Ansicht
First chapter : Chapter A
Chapter : Chapter B
Chapter : Chapter C
Last chapter : Chapter D
XSLT Stylesheet
<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>


XSLT Stylesheet 2

XML Quelltext
<source>

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

</source>

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

HTML-Ansicht
Chapter : Chapter A
Chapter : Chapter B
Chapter : Chapter C
Chapter : Chapter D
XSLT Stylesheet
<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>