RE: [xsl] Whats Wrong with: <xsl:value-of select="//exec[@stepid=$temp_step]/dds/dd[logical/@id=$temp_id]" />

Subject: RE: [xsl] Whats Wrong with: <xsl:value-of select="//exec[@stepid=$temp_step]/dds/dd[logical/@id=$temp_id]" />
From: "Andrew Welch" <ajwelch@xxxxxxxxxxxxxxx>
Date: Thu, 11 Nov 2004 15:46:21 -0000
> Friends,
> To expand on David's post, I find it easier and less liable
> to error to express the variable this way when I want a
> string:  XLST 1.0
>   <xsl:variable name="temp_id">SORTOUT</xsl:variable>

The problem here is that you are creating a temporary tree, which has a
root and a single text node child.  Doing a value-of on the tree will
return the string 'SORTOUT', as it returns all the text-nodes for the
tree concatenated together, however, there is comparitively massive cost
in constructing the tree and the holding it in memory.

Using <xsl:variable name="temp_id" select="'SORTOUT'"/> simply binds the
string to the variable, and incurs no tree creation costs or the extra
memory use.

So, although they appear very similar as using value-of on either
technique produces the same result, they are actually quite different.

The rule of thumb is - if it's possible to do all the work in the select
attribute do it there.

cheers
andrew

Current Thread