Subject: re: [xsl] [xls] run-time variable name generation (e.g. "double de-referencing" {$($name)} ) From: "Vladimir Nesterovsky" <vladimir@xxxxxxxxxxxxxxxxxxxx> Date: Mon, 11 May 2009 22:23:18 -0700 |
> 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) I can advice on template to resolve variable indirectly: <xsl:variable name="A" select="100"/> <xsl:variable name="B" select="BBB"/> <xsl:template mode="t:get-var" match="A"> <xsl:sequence select="$A"/> </xsl:template> <xsl:template mode="t:get-var" match="B"> <xsl:sequence select="$A"/> </xsl:template> ... <xsl:variable name="VAR" as="element()"> <xsl:element name="{$var}"/> </xsl:variable/> <xsl:variable name="value" as="item()"> <xsl:apply-templates mode="t:get-var" select="$var"/> </xsl:variable> -- Vladimir Nesterovsky http://www.nesterovsky-bros.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] [xls] run-time variable n, Michael Kay | Thread | re: [xsl] [xls] run-time variable n, Florent Georges |
[xsl] [xsl-fo] how to suppress foot, Geert Bormans | Date | RE: [xsl] [xsl-fo] how to suppress , Peter Kester |
Month |