There is an important difference in variable value specification. : variable « XSLT stylesheet « XML Tutorial






File: Data.xml
<?xml version="1.0" encoding="utf-8"?>
<data>
    <AAA>
      <BBB>
        <CCC>C1</CCC>
      </BBB>
      <CCC>C2</CCC>
      <CCC>C3</CCC>
    </AAA>
    <AAA>
      <CCC>
        <DDD>D1</DDD>
        <DDD>D2</DDD>
      </CCC>
    </AAA>
</data>
File: Transform.xslt

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
      version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:variable name="var1" select="//AAA/CCC/text()"/>
    <xsl:variable name="var2">//AAA/CCC/text()</xsl:variable>
    <xsl:template match="/">
      <xsl:call-template name="function">
        <xsl:with-param name="path1" select="//AAA/CCC/DDD"/>
        <xsl:with-param name="path2">//AAA/CCC/DDD</xsl:with-param>
      </xsl:call-template>
    </xsl:template>
    <xsl:template name="function">
      <xsl:param name="path1"/>
      <xsl:param name="path2"/>
      <paragraph>
        <xsl:value-of select="$path2"/>
        <xsl:text> : </xsl:text>
        <xsl:value-of select="$path1"/>
      </P>
      <paragraph>
        <xsl:value-of select="$var2"/>
        <xsl:text> : </xsl:text>
        <xsl:for-each select="$var1">
          <xsl:value-of select="."/>
          <xsl:text/>
        </xsl:for-each>
      </P>
    </xsl:template>
</xsl:stylesheet>

Output:

<?xml version="1.0" encoding="UTF-8"?><paragraph>//AAA/CCC/DDD : D1</P><paragraph>//AAA/CCC/text() : C2C3
        
        
      </P>








5.68.variable
5.68.1.Define variable and use it
5.68.2.Fill position to a variable
5.68.3.Define and use variable
5.68.4.Variable scope
5.68.5.Variable assignment with choose statement
5.68.6.There is an important difference in variable value specification.
5.68.7.if a variable has some defined value
5.68.8.Variable without initialization
5.68.9.demonstrate different ways of setting xsl:variable
5.68.10.Use variable to hold a result tree