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: How do you get the most recent element?


> 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


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