Subject: Re: [xsl] Re: XSL Variable declaration From: Vasu Chakkera <vasucv@xxxxxxxxx> Date: Mon, 14 Feb 2011 12:09:16 +0000 |
Dear David/Mike. Thanks for this.. Yeas, It does kind of confuse the reader.. Vasu On 14 February 2011 11:07, Michael Kay <mike@xxxxxxxxxxxx> wrote: > On 14/02/2011 10:48, Vasu Chakkera wrote: >> >> There is an interesting stylesheet I came across this morning where >> some developer had declared two Xsl:variables one after the other with >> the same name. >> <xsl:variable name = "foo"> >> </xsl:variable> >> <xsl:variable name = "foo"> >> </xsl:variable> >> Not sure why he did that, but to my surprise, it seems to be valid >> in XSLT2 .. and as my expectations, it failed in XSLT1 saying two >> variables cant have same name within the same scope.. >> Is this right?? > > Yes, this is permitted in XSLT 2.0 but not 1.0 (I assume you are talking > about local variables). > > It can be quite a handy style of programming, so long as you recognize that > each xsl:variable is a new variable: > > <xsl:variable name="s" select="@something"/> > <xsl:variable name="s" select="substring-before($s, ':')"/> > <xsl:variable name="s" select="substring-after($s, '/')"/> > <xsl:variable name="s" select="concat('(', $s, ')')"/> > <xsl:value-of select="$s"/> > > Saves (a) writing deeply nested XPath expressions, and (b) thinking up new > variable names for intermediate results, or (c) changing variable names when > an extra computation step is introduced. > > But it might confuse some readers, so use with care. > > Michael Kay > Saxonica > > -- Vasu Chakkera NodeLogic Limited Oxford www.nodelogic.org ==============
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Re: XSL Variable declarat, Michael Kay | Thread | Re: [xsl] Re: XSL Variable declarat, Michael Kay |
Re: [xsl] Re: XSL Variable declarat, Michael Kay | Date | [xsl] XSLT Lint 0.1, Andriy Gerasika |
Month |