Re: [xsl] What is the scope of template variables?

Subject: Re: [xsl] What is the scope of template variables?
From: "Kurt Cagle" <cagle@xxxxxxxxx>
Date: Wed, 16 May 2001 15:45:49 -0500
 <xsl:template match="something">
     <xsl:variable name="a" select="XPathExpr"/>
     ........
     <xsl:call-template name="func1"/>
     <xsl:apply-templates select="junk"/>
     .....
 </xsl:template>
 
 <xsl:template name="func1">
     <!-- QUESTION:  Is the variable $a defined in the calling template
 visible to this template? -->
    <!-- Answer: No -->
 </xsl:template>
 
 <xsl:template match="junk">
     <!-- QUESTION:  Is the variable $a defined in the calling template
 visible to this template? -->
    <!-- Answer: No -->
 </xsl:template>
> 
> <Thanks author="Shakeel Mahate"/>

You need to pass the variables in via parameters to make them visible:

<xsl:template match="something">
    <xsl:variable name="a" select="XPathExpr"/>
    ....
    <xsl:call-template name="func1">
        <xsl:with-param name="a" select="$a"/>
    </xsl:call-template>
    <xsl:apply-templates select="junk">
        <xsl:with-param name="a" select="$a"/>
    </xsl:call-template>
</xsl:template>

<xsl:template name="func1">
    <xsl:param name="a"/>
    <!-- $a is now visible to this template -->
</xsl:template>

<xsl:template match="junk">
    <xsl:param name="a"/>
    <!-- $a is now visible to this template -->
</xsl:template>

-- Kurt Cagle


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread