Subject: Re: [xsl] are multiple predicates same as boolean and From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx> Date: Fri, 21 Nov 2008 20:36:28 +0530 |
Thanks, David for further thoughts .. this makes me better at this. I have a related question ... for real world XSLT/XPath programs, upto how many predicates can we typically see? I haven't seen programs using 3, 4 or more predicates. X[..][..][..][..] I have used one or two predicates upto now. are excessively large number or predicates really useful? (the syntax allows that ...) I think perhaps, for complex 'and' conditions, using multiple predicates are useful ... On Fri, Nov 21, 2008 at 8:11 PM, David Carlisle <davidc@xxxxxxxxx> wrote: > > >> 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 -- Regards, Mukul Gandhi
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] are multiple predicates s, David Carlisle | Thread | Re: [xsl] are multiple predicates s, David Carlisle |
Re: [xsl] are multiple predicates s, Mukul Gandhi | Date | Re: [xsl] are multiple predicates s, Mukul Gandhi |
Month |