xsl-list
[Top] [All Lists]

RE: Variable or Query for Speed

2003-02-04 16:36:28
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(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com 

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Peter Eschenbrenner
Sent: 04 February 2003 20:49
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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