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