This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: hoe to use "(" within a variable
- From: Jeni Tennison <jeni at jenitennison dot com>
- To: "Andrew Welch" <awelch at piper-group dot com>
- Cc: xsl-list at lists dot mulberrytech dot com
- Date: Mon, 12 Aug 2002 12:43:39 +0100
- Subject: Re: [xsl] hoe to use "(" within a variable
- Organization: Jeni Tennison Consulting Ltd
- References: <63C4AD0365821F4291ACF76C0672FA3506EF15@piper6.piper-group.int>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi Andrew,
> Can you highlight the differences of using the select attribute (over
> rtf content) when using variables.
>
> Using this case as an example,
>
> <xsl:variable name"foo" select="sprintf(log_str, '\n%s: %d: %s:%s')"/>
You mean:
<xsl:variable name"foo"
select='"sprintf(log_str, '\n%s: %d: %s:%s')"' />
> against:
>
> <xsl:variable name="foo">sprintf(log_str, '\n%s: %d:
> %s:%s')</xsl:variable>
>
> As you have said one would require escaping of quotes, and the other
> is technically a result-tree-fragment, but getting the value-of
> produces the same results.
>
> What is best practice here?
In my mind, best practice is that if you can set a variable directly
to a string, number, boolean or node set then it's much better to do
so than it is to go through a result tree fragment.
When you use a result tree fragment, the processor has to create at
least two new nodes (a root node and a text node); creating nodes and
storing that is a *lot* more burdensome (takes up more processing time
and memory) than storing the value directly. The result tree fragment
needs to be converted to a string/number/boolean/node-set when you use
it, which also takes time compared to using the value directly.
Finally, I find it easy to mistakenly test variables with:
<xsl:if test="$foo">
...
</xsl:if>
which is always true for a result tree fragment, and wouldn't
necessarily be for a string.
Having to escape the quotes is a pain, but I think that "if you can,
use the select attribute" is a heuristic that will generally stand you
in good stead.
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list