This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Correct use of Parameters?
- From: Wendell Piez <wapiez at mulberrytech dot com>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Wed, 04 Sep 2002 17:11:42 -0400
- Subject: Re: [xsl] Correct use of Parameters?
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi Will--
At 04:32 PM 9/4/2002, you wrote:
I'm using 2 parameters (probably could have used xsl:variables...) to store
values that are referenced more than once while performing XSLT. My question
is: Is this more efficient (better practice) than walking the nodes each
time?
Probably. Yes, unless the processor has implemented some kind of
optimization which does the same thing internally. Certainly easier to
maintain and, arguably, to read.
<INPUT ID="userID" TYPE="TEXT" NAME="txtUserID" SIZE="8"
MAXLENGTH="8" TABINDEX="1">
<xsl:attribute name="value"><xsl:value-of
select="$userID"/></xsl:attribute>
</INPUT>
As you're interested in being concise, know that this is the same as:
<INPUT ID="userID" TYPE="TEXT" NAME="txtUserID" SIZE="8"
MAXLENGTH="8" TABINDEX="1" value="{$userID}"/>
One more thing...Is there a better way to write this?
<xsl:value-of
select="/RouteCodeMaintLookup/RouteCodeList/RouteCodeItem/Team/BusinessUnit/
@businessUnitName"/>
Well, yes and no. "//@businessUnitName", assuming there is only one such
attribute node in the document, is much more concise; but this is a bad
idea unless either or both (a) your documents are small and will always
remain so (this XPath will traverse the entire document looking for
@businessUnitName attributes instead of going straight to it), or (b) the
attribute may sometimes be located somewhere else but you still want your
code to find it.
Most experts would recommend against "//@businessUnitName" as a waste of
cycles, if you know where the node is, since it will be expensive on large
documents. Aiming not for conciseness of expression but for efficiency of
traversal, there's no better way to write it than what you have.
Cheers,
Wendell
======================================================================
Wendell Piez mailto:wapiez@mulberrytech.com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list