|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Ordering of Blocks based on Input/Output
> > > <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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








