Subject: Re: [xsl] hoe to use "(" within a variable From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Mon, 12 Aug 2002 12:43:39 +0100 |
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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] hoe to use "(" within a v, Andrew Welch | Thread | RE: [xsl] hoe to use "(" within a v, Vinoth Palaniappan |
RE: [xsl] hoe to use "(" within a v, Vinoth Palaniappan | Date | RE: [xsl] hoe to use "(" within a v, Vasu Chakkera |
Month |