This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: problem with last() function
- From: "Michael Kay" <michael dot h dot kay at ntlworld dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Thu, 30 May 2002 15:48:45 +0100
- Subject: RE: [xsl] problem with last() function
- Reply-to: xsl-list at lists dot mulberrytech dot com
self::node()[position()=last()] is exactly analogous to
child::node()[position()=last()] - it finds all the nodes on the self
axis and from these, selects the last one.
instead of "| self::node()[position()=last()]", write "or
position()=last()". Alternatively, write "or
not(following-sibling::node())" - which is less dependent on how your
template happens to be called, and may be cheaper to evaluate.
Michael Kay
Software AG
home: Michael.H.Kay@ntlworld.com
work: Michael.Kay@softwareag.com
> -----Original Message-----
> From: owner-xsl-list@lists.mulberrytech.com
> [mailto:owner-xsl-list@lists.mulberrytech.com] On Behalf Of
> John Walker
> Sent: 30 May 2002 15:05
> To: xsl-list@lists.mulberrytech.com
> Subject: [xsl] problem with last() function
>
>
> Hi All!
>
> I want to know if a node is followed by some particular
> nodes or if
> it's the last node of the set. So I've tried:
>
> <xsl:if test="following-sibling::table |
> following-sibling:list | self::node()[position()=last()]">
>
> I've had to use "self::node()[position()=last()]" instead of simply
> "position()=last()" because this last comparison doesn't return a DOM
> node (wich seems to enter in conflict with the previous
> comparisons)...
> but it doesn't work! "self::node()[position()=last()]" always returns
> the current node, doesn't matter if it's the last or not.
> I've an alternative solution, but I'd like to know why this
> particular
> expresion doesn't work! (...despite of curiosity killed the cat...)
>
> Thanx a lot!
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list