Subject: RE: [xsl] XSL: For-Each Efficient or Not? From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx> Date: Mon, 1 Jul 2002 18:59:54 +0100 |
> Wendell wrote: > >m:apply[factorof[not(preceding-sibling::*)]] > > >will be better than > > >m:apply[child::*[position()=1 and name()='factorof']] > > at first I didn't get your point on this one. I supposed on > further consideration that it was right, although it seems > like it would be mainly dependent on the order in which xpath > is evaluated by the processor, I mean that a reasonably > clever processor would evaluate [position()=1 and > name()='factorof'] first and then from there look for any > child::* which matched this, with the result that it would > only check the first child to see if it had a name of > factorof? Am I very wrong in this supposition? In general, positional tests in a match pattern are very expensive, for example if you write match="item[last()-1]" then the system will have to test the item to find out how many preceding items there are, how many items there are in total, and hence whether this is the last but 1. Saxon tries to optimize the common cases item[1] and item[last()], turning them into tests on the existence of a preceding/following sibling. Other processors may or may not do the same. Michael Kay Software AG home: Michael.H.Kay@xxxxxxxxxxxx work: Michael.Kay@xxxxxxxxxxxxxx XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XSL Lint was: Schema Opti, J.Pietschmann | Thread | Re: [xsl] XSL: For-Each Efficient o, Vasu Chakkera |
[xsl] preserve-space, nrashidi | Date | Re: [xsl] Practicality of Separatin, James Fuller |
Month |