|
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 |