Previous | Next | Indexes
Zvon > Tutorials > XSLT 2.0 Tutorial > Variables and Parameters (3/14) >

Setting variable value with select attribute

In the previous examples element content was used to establish a value for the variable. The second possibility is to use select attribute.

In the example the value of global variable is the name of the root element. Local variables "xxx" demonstrate alternative methods for setting the value.

XSLT

      <xsl:stylesheet
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  version="2.0">
            <xsl:output  method="xml"
                        indent="yes"
                        omit-xml-declaration="yes"/>
            <xsl:variable  name="yyy"
                        select="name(/*)"/>

            <xsl:template  match="/aaa">
                  <xsl:apply-templates  select="*"/>
            </xsl:template>

            <xsl:template  match="bbb">
                  <xsl:variable  name="xxx"
                              select="@x"/>
                  <bbb>
                        <local>
                              <xsl:value-of  select="$xxx"/>
                        </local>
                        <global>
                              <xsl:value-of  select="$yyy"/>
                        </global>
                  </bbb>
            </xsl:template>

            <xsl:template  match="ccc">
                  <xsl:variable  name="xxx">
                        <xsl:value-of  select="@x"/>
                  </xsl:variable>
                  <ccc>
                        <local>
                              <xsl:value-of  select="$xxx"/>
                        </local>
                        <global>
                              <xsl:value-of  select="$yyy"/>
                        </global>
                  </ccc>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa>
            <bbb  x="111"/>
            <ccc  x="222"/>
      </aaa>
Output

      <bbb>
            <local>111</local>
            <global>aaa</global>
      </bbb>
      <ccc>
            <local>222</local>
            <global>aaa</global>
      </ccc>


Previous chapter: Named-Templates
Next chapter: Stylesheet Functions
Previous page: Local and global variables
Next page: Problems with scope of variables