xsl-list
[Top] [All Lists]

RE: Reference to variable cannot be resolved.

2003-02-14 05:16:51

True, but in this case, x seems to be evaluated twice:

No, you have two different things called x, and each of them is
evaluated once.

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  <xsl:variable name="x" select="'hello'"/>
  <xsl:template match="/">
    <result>
      <r><xsl:value-of select="$x"/></r> <!-- $x is 'hello' here -->
      <xsl:variable name="x" select="'hi'"/>
      <r><xsl:value-of select="$x"/></r> <!-- $x is 'hi' here -->
      <xsl:call-template name="test"/>
    </result>
  </xsl:template>
  <xsl:template name="test">
    <r><xsl:value-of select="$x"/></r> <!-- $x is 'hello' here -->
  </xsl:template>
</xsl:stylesheet>

Explaining to people why that's legal, after telling them 
they can only assign x once, is a nice challenge :)

If people don't understand that the same name can refer to different
objects depending on the context, then they shouldn't be programming.

Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com 


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



<Prev in Thread] Current Thread [Next in Thread>