|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: XSL: For-Each Efficient or Not?
> > > > >m:apply[child::*[position()=1 and name()='factorof']] > > ... > > In this case, however, the processor does have to look at > every node since > each node has to provide the context for the evaluation of the > expression(s) in the predicate. I.e. how does it evaluate > name()='factorof' > without picking up the node whose name it's testing? It would > be a pretty > smart processor that had already thrown away all the nodes in > the wrong > position before it did that. It's not that difficult. Saxon doesn't quite achieve this today but it will in the next release (I just tested it). X[position() = 1 and name()='factorof'] can be statically rewritten as X[1][name()='factorof'] without too much difficulty. All you need to know is that the right-hand operand of the "and" does not depend on current position (and you need to be careful not to rewrite X[1 and 2] as X[1][2]). Once you have done this rewrite, the standard (run-time) optimization for X[1] is triggered, so you stop evaluating X after you've found the first node that matches. Michael 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








