La transformation suivante:
<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>
lorsqu'il est appliqué sur le document XML source fourni (trop long à la liste il re, voir le link),
produit le résultat recherché:
<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's 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>
Vous n'avez pas fourni d'exemple de fichier XML (RSS) pour lequel vous voulez que le tri soit effectué, et vous n'avez pas fourni la sortie exacte que vous avez vouloir être produit. S'il vous plaît, éditez votre question et fournissez ces deux choses importantes. Alors beaucoup de gens pourront aider. Ce n'est pas si difficile. –