Subject: RE: [xsl] Ordering of Blocks based on Input/Output From: "Michael Kay" <mhkay@xxxxxxxxxxxx> Date: Wed, 9 May 2001 17:26:48 +0100 |
> > > <xsl:if test="count($todo) > 0"> > > > > This test does the same as test="$todo", which is > > much more efficient for larger data, > > if the processor doesn't optimize it anyway. > > > Quite right about the equivalence, though I don't know if > doing count() > on a node-set held in a variable will take as long as it would if > gathering the node-set for the first time. Many XSLT processors will "gather the node-set for the first time" when evaluating the count() function - delayed evaluation and pipelining is the norm in a functional language. That's why test="$todo" (or test="boolean($todo)" for clarity) is faster, because it can stop as soon as it sees the first node. Saxon rewrites "count($todo) > 0" as "boolean($todo)" at compile time, provided it knows at compile time that $todo is a node-set - which will generally be the case for a variable, but not for a parameter. Mike Kay XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Ordering of Blocks based , Francis Norton | Thread | Re: [xsl] Ordering of Blocks based , Dan Diebolt |
[no subject], Stephane . Le-Deaut | Date | RE: [xsl] Developing an image brows, Richard Lander |
Month |