xsl-list
[Top] [All Lists]

RE: [xsl] [xls] run-time variable name generation (e.g. "double de-referencing" {$($name)} )

2009-05-10 19:00:32

No, you can't do this. (I can't think of any language where you can, except
some languages where variables are nothing more than macros, e.g. some OS
script languages).

Take a look at FXSL, which allows you to simulate higher-order functions. If
you replace your variables with zero-argument functions, then you can
effectively pass the function around as a first-class value. 

Real higher-order functions have now been defined and accepted for inclusion
in XQuery 1.1 and I think it's likely that a future XSLT version will follow
suit (though the decisions haven't yet been made).

Regards,

Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay 

 

-----Original Message-----
From: Mtekel [mailto:thx(_at_)trolej(_dot_)sk] 
Sent: 10 May 2009 23:45
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] [xls] run-time variable name generation (e.g. 
"double de-referencing" {$($name)} )

Hello,

I have a question again, this time concerning variables.
Can I generate variable name run-time?
Let's say I have:

<xsl:variable name="A" select="100"/>
<xsl:variable name="B" select="BBB"/>

<xsl:variable name="var" select="'A'"/>
<xsl:variable name="VAR" select="concat('$',$var)"/>

and now I would like this     (or what else could I use that 
would work?)

<xsl:value-of select="$VAR"/>

would give output 100, not $A 

Is this possible or doable any way?
Maybe with some other type than variables?
Or with some other methods at all?

(From functional lang. point of view this is st. like 
dereferencing double
pointer: the first points to variable name, the variable name 
then points to
data)


Once again, 

Thanks for any advice.

Michael


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--