This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: concat variable names
- From: "Dion Houston" <dionh at microsoft dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Thu, 14 Mar 2002 16:50:42 -0800
- Subject: RE: [xsl] concat variable names
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi Michael:
Variable names are constant, so you can't create them dynamically in the
way you describe. I would recommend something like this:
<xsl:variable name="mySettings.tf">
<Setting Name="var_1">value_of_var1</Setting>
<Setting Name="var_2">value_of_var2</Setting>
<Setting Name="var_3">value_of_var3</Setting>
<Setting Name="var_4">value_of_var4</Setting>
</xsl:variable>
<xsl:variable name="mySettings"
select="msxsl:node-set($mySettings.tf)"/>
(replace msxl:node-set() with your preferred nodeset from tree fragment
function)
You can then replace references to $var_x with
$mySettings/Setting[@Name='var_1'], and to get all the values, simply
get all $mySettings/Setting.
HTH!
Dion
-----Original Message-----
From: Michael Auth [mailto:michael.auth@web.de]
Sent: Thursday, March 14, 2002 4:24 PM
To: XSL-List@lists.mulberrytech.com
Subject: [xsl] concat variable names
Is there a way to concat the name of a variable?
I have 5 variables $var_1, $var_2, ..., $var_5; all declared as global
variables.
I want to use this varibles in a loop, something like this:
loop (count from 1 to 5, store the counter in a variable called
$counter)
<xsl:variable name="newvar" select="$(concat('var_', $counter))"/>
What I want to get, is that the variable $newvar stores the value of
$var_1 and in the next run the value of $var2, and so on up to $var_5.
It does not work (of course) with the method above, but is there a way
it will work???
(It seems to me that this is a general problem in XSL, for I have other
projects where it would be very usefully too).
Thanks!
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list