Subject: RE: Reference to variable cannot be resolved.
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Fri, 14 Feb 2003 12:16:51 -0000
|
>
> 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.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|
Andrew Welch - Fri, 14 Feb 2003 07:07:19 -0500 (EST)
|
|