RE: [xsl] Variable or Query for Speed

Subject: RE: [xsl] Variable or Query for Speed
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Tue, 4 Feb 2003 23:36:28 -0000
The only way to find out is to measure it and see: it might well vary
from one processor to another. It's unlikely to make a worthwhile
difference either way.

If you do use a variable, make it a string and not a result tree
fragment. That is, write

<xsl:variable name="tableName" select="string(@name)">

not

<xsl:variable name="tableName">
   <xsl:value-of select="@name" />
</xsl:variable>

Result tree fragments are very expensive, and you can't rely on them
being optimized.

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx 

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Peter Eschenbrenner
> Sent: 04 February 2003 20:49
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Variable or Query for Speed
> 
> 
> A stylesheet I am working with uses a specific value multiple 
> times. The tableName it is reading from xml is concatenated 
> with multiple strings in various for-each loops throughout 
> the stylesheet.  With the current xml document I am working 
> with, this means the value is used almost 100 times.
> 
> Question:
> Is it faster to query the xml file everytime I want that 
> variable, or to query it once, store it in a variable, and 
> echo the value of the variable when I need it?
> 
> Use this every time I want the value:
> <xsl:value-of select="@name" />
> 
> 
> Or define a variable with that value and use the variable each time
> instead:
> <xsl:variable name="tableName">
> 	<xsl:value-of select="@name" />
> </xsl:variable>
> 
> <xsl:value-of select="$tableName" />
> 
> 
> 
> Peter E.
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread