This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: catching the last node still satisfying a condition


Ainsi parlait David Carlisle :
> > Are successive predicate legal ?
>
>  yes. There are examples of this in the spec are there not?
Yes they are, altough not very proeminent. I missed them initialy :-)

> >And are they evaluated as
> > foo[position() < $limit AND bar AND last()] or as
> > (((foo[position() < $limit])[bar])[last()]) ?
>
> Neither.
>
> foo[position() < $limit AND bar AND last()]
>
>
> isn't what you meant, you meant
> foo[position() < $limit and bar and position()=last()]
>
> in this one last() would return the number of foo elements.
>
> (((foo[position() < $limit])[bar])[last()])
>
> In this case this is equivalent to
> foo[position() < $limit][bar][last()]
>
>
> as foo is short for child::foo which is a forward axis.
>
> But for a reverse axis,
>
> ancestor::foo[position() < $limit][bar][last()]
>
> last() and position() relate to reverse document ordering but in
>
> (((foo[position() < $limit])[bar])[last()])
>
> last() and position() relate to document ordering

Thanks for those explanations, resulting xsl code is far cleaner.
-- 
Guillaume Rousse <rousse@ccr.jussieu.fr>
GPG key http://lis.snv.jussieu.fr/~rousse/gpgkey.html

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]