Subject: Re: [xsl] are multiple predicates same as boolean and From: David Carlisle <davidc@xxxxxxxxx> Date: Fri, 21 Nov 2008 14:41:02 GMT |
> If X[@a='hi'] matches a node, then that node will become the context > node when evaluating [@b='hi..'] as Andrew just said [] the context node doesn't change, so > X[P][Q] is equivalent to X[P and Q] if and only if Q does not depend on > the context node at all. isnt't true, howver context position (position() ) and size (last()) do change. so basically repeated filters are equivalent to and unless any of them depend on position() or last(), including the speical case of [integer] being equivalent to [position()=integer] this last case is what makes it tricky to do a static rewite of this unless you are a real XSLT engine that really know what is happening. If you have X[... foo ..][... bar ...] you can only rewrite that to X[(... foo ..) and (... bar ...)] if you know that neither expression will evaluate to a number at run time. You probably don't know that unless you are the XSLt engine, except in special cases. David ________________________________________________________________________ The Numerical Algorithms Group Ltd is a company registered in England and Wales with company number 1249803. The registered office is: Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom. This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. ________________________________________________________________________
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] are multiple predicates s, David Carlisle | Thread | Re: [xsl] are multiple predicates s, Mukul Gandhi |
Re: [xsl] are multiple predicates s, Ronan Klyne | Date | Re: [xsl] are multiple predicates s, David Carlisle |
Month |