This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: XSL-List Digest V3 #1090
- To: <xsl-list at lists dot mulberrytech dot com>
- Subject: [xsl] Re: XSL-List Digest V3 #1090
- From: "Gustaf Liljegren" <gustaf dot liljegren at xml dot se>
- Date: Thu, 13 Sep 2001 14:54:24 +0200
- References: <200109121404.KAA10217@biglist.com>
- Reply-To: xsl-list at lists dot mulberrytech dot com
> Date: Wed, 12 Sep 2001 13:55:40 +0200
> From: Bas Alberts <bas.alberts@group2000.nl>
> Subject: RE: [xsl] Getting the latest date
> Since your dates are suitable for lexicographical ordering,
> how about the following (almost literally copied from
> http://www.dpawson.co.uk/xsl/sect2/N6461.html#d194e703):
<xsl:variable name="maximum">
<xsl:for-each select="//revision">
<xsl:sort select="@date" order="descending" />
<xsl:if test="position() = 1">
<xsl:value-of select="."/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
This didn't work. Suppose I put the revision elements in arbitrary order:
<revision date="2000-04-20">1.0B</revision>
<revision date="2000-04-21">1.0C</revision>
<revision date="2000-04-19">1.0A</revision>
I want the value "2000-04-21" but the code outputs "1.0B". It seems that no
sorting happens.
Original message:
>
> In a DTD I collect meta information about a document's history, like this:
>
> <revision date="2000-04-19">1.0A</revision>
> <revision date="2000-04-20">1.0B</revision>
> <revision date="2000-04-21">1.0C</revision>
>
> I need a way to pick out the latest date from these. The latest revision
is
> usually put on top of the others, but this may not always be the case. I
> have considered converting the string "2000-04-19" to the number
"20000419"
> and then using the ceiling() function to get the latest date, but I'm
> looking for a less complicated way of doing this.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list