xsl-list
[Top] [All Lists]

XSLT Sort and choose last items problem

2003-02-09 07:04:29
Hello.

I am trying to display the last 5 "days" from an XML file, sorted in
descending order.

Sample XML snippet:
<journal>
        <year>
                <month date="1">
                        <day date="1">
                                <contents/>
                        <day date="2">
                        ...
                </month>
                <month date="2">
                        <day date="1">
                                <contents/>
                        <day date="2">
                        ...
                </month>
                ...
        </year>
</journal>

I currently use XSLT:
(Snippet:)
<xsl:for-each select="journal/year/month[last()]">
        <xsl:for-each select="day[position()>last()-5]">
                <xsl:sort order="descending" select="@date"/>
                <item>
                        <xsl:call-template name="item-contents"/>
                </item>
        </xsl:for-each>
</xsl:for-each>

This does not quite do what I want to do. This is because I am unable to
select the last 5 days when they span "month" elements. For example,
when the last day in the XML file is 2 Feb, I want to select (in this
order) 2 Feb, 1 Feb, 31 Jan, 30 Jan, and 29 Jan. I can't figure out how
to select the days from January.

I hope I've explained that well enough.

Sincerely,

Ned Martin
http://nedmartin.org/




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