The following conversion :
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes" indent="yes"/> <xsl:variable name="vrtfMonths"> <m name="Jan" num="01"/> <m name="Feb" num="02"/> <m name="Mar" num="03"/> <m name="Apr" num="04"/> <m name="May" num="05"/> <m name="Jun" num="06"/> <m name="Jul" num="07"/> <m name="Aug" num="08"/> <m name="Sep" num="09"/> <m name="Oct" num="10"/> <m name="Nov" num="11"/> <m name="Dec" num="12"/> </xsl:variable> <xsl:variable name="vMonths" select= "document('')/*/xsl:variable [@name='vrtfMonths']/*" /> <xsl:template match="channel"> <xsl:for-each select="item"> <xsl:sort data-type="number" order="descending" select= "concat(substring(pubDate,13,4), $vMonths[@name = substring(current()/pubDate,9,3)]/@num, substring(pubDate,6,2), translate(substring(pubDate,18,8), ':', '' ) ) "/> <xsl:if test="not(position() > 5)"> <xsl:copy-of select="."/> </xsl:if> </xsl:for-each> </xsl:template> </xsl:stylesheet>
when applied to the provided XML source document (the list is too long here, see the link) ,
creates the desired result :
<item xmlns:media="http://search.yahoo.com/mrss"> <title>Inflation rate expected to fall</title> <description>The latest figures for the rate of inflation, for the 12 months to January, are expected to show that it has fallen again.</description> <link>http://news.bbc.co.uk/go/rss/-/1/hi/business/7893873.stm</link> <guid isPermaLink="false">http://news.bbc.co.uk/1/hi/business/7893873.stm</guid> <pubDate>Tue, 17 Feb 2009 02:58:03 GMT</pubDate> <category>Business</category> <media:thumbnail width="66" height="49" url="http://newsimg.bbc.co.uk/media/images/45483000/jpg/_45483998_cash226.jpg" /> </item><item xmlns:media="http://search.yahoo.com/mrss"> <title>Farming pressures</title> <description>Are farmers being forced to use GM seeds?</description> <link>http://news.bbc.co.uk/go/rss/-/1/hi/business/7892328.stm</link> <guid isPermaLink="false">http://news.bbc.co.uk/1/hi/business/7892328.stm</guid> <pubDate>Tue, 17 Feb 2009 00:06:31 GMT</pubDate> <category>Business</category> <media:thumbnail width="66" height="49" url="http://newsimg.bbc.co.uk/media/images/45481000/jpg/_45481936_005666785-1.jpg" /> </item><item xmlns:media="http://search.yahoo.com/mrss"> <title>Engine room?</title> <description>Western Australia economy may be hitting reverse. </description> <link>http://news.bbc.co.uk/go/rss/-/1/hi/business/7840370.stm</link> <guid isPermaLink="false">http://news.bbc.co.uk/1/hi/business/7840370.stm</guid> <pubDate>Tue, 17 Feb 2009 00:05:25 GMT</pubDate> <category>Business</category> </item><item xmlns:media="http://search.yahoo.com/mrss"> <title>Coining it in? </title> <description>Investors turning to old and rare coins in the downturn </description> <link>http://news.bbc.co.uk/go/rss/-/1/hi/business/7878606.stm</link> <guid isPermaLink="false">http://news.bbc.co.uk/1/hi/business/7878606.stm</guid> <pubDate>Tue, 17 Feb 2009 00:04:29 GMT</pubDate> <category>Business</category> <media:thumbnail width="66" height="49" url="http://newsimg.bbc.co.uk/media/images/45459000/jpg/_45459789_dsc_4982.jpg" /> </item><item xmlns:media="http://search.yahoo.com/mrss"> <title>Home sales may rise say surveyors</title> <description>Property sales may pick in the next few months, according to the Royal Institution of Chartered Surveyors (Rics).</description> <link>http://news.bbc.co.uk/go/rss/-/1/hi/business/7893193.stm</link> <guid isPermaLink="false">http://news.bbc.co.uk/1/hi/business/7893193.stm</guid> <pubDate>Tue, 17 Feb 2009 00:02:19 GMT</pubDate> <category>Business</category> <media:thumbnail width="66" height="49" url="http://newsimg.bbc.co.uk/media/images/45483000/jpg/_45483075_006771638-1.jpg" /> </item>
source share