This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: How do you get the most recent element?
- To: <xsl-list at lists dot mulberrytech dot com>
- Subject: RE: [xsl] How do you get the most recent element?
- From: "Michael Kay" <mhkay at iclway dot co dot uk>
- Date: Fri, 9 Feb 2001 18:09:06 -0000
- Reply-To: xsl-list at lists dot mulberrytech dot com
> I need to display the most recent "note". I did something
> like shown below.
> I'm concerned that the match will go through all the sorted notes even
> though I
> only want the most recent. Thought there might be a more
> elegant solution out there.
>
>
> <xsl:apply-templates select="note">
> <xsl:sort order="descending" select="time"/>
> </xsl:apply-templates>
>
>
> <xsl:template match="note">
> <xsl:if test="position()=1">
> <xsl:value-of select="text"/>
> </xsl:if>
> </xsl:template>
>
Actually, the sort will probably take longer than processing the sorted list
and discarding elements you're not interested in, so for an improvement you
want to avoid the sort.
If you want to do a single pass through the data, it's a case for a
recursive template or an extension function such as saxon:highest().
Mike Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list