是的,你可以。
您可以使用多個xsl:sort元素,以便用多個條件對選擇進行排序。
下1.0 XSLT轉換:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<root>
<xsl:for-each select="root/list">
<xsl:sort data-type="number" order="ascending" select="substring(normalize-space(object/date), 1, 4)"/>
<xsl:sort data-type="number" order="ascending" select="substring(normalize-space(object/date), 6, 2)"/>
<xsl:sort data-type="number" order="ascending" select="substring(normalize-space(object/date),9, 2)"/>
<xsl:copy-of select="."/>
</xsl:for-each>
</root>
</xsl:template>
</xsl:stylesheet>
當應用到我想出了根據自己生病形成輸入.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<root>
<list>
<object>
<date>
2011-10-05
</date>
</object>
</list>
<list>
<object>
<date>
2011-10-04
</date>
</object>
</list>
<list>
<object>
<date>
2011-10-08
</date>
</object>
</list>
</root>
將產生以下結果:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<list>
<object>
<date>
2011-10-04
</date>
</object>
</list>
<list>
<object>
<date>
2011-10-05
</date>
</object>
</list>
<list>
<object>
<date>
2011-10-08
</date>
</object>
</list>
</root>
我首先根據年份,然後在月份和最後一天排序。自然你可以改變排序順序以適應你的需求。
我希望我能解決你的問題:)