Да, вы можете.
Вы можете использовать несколько элементов xsl: sort для сортировки вашего выбора по нескольким критериям.
Следующее преобразование XSLT 1.0:
<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>
Я сортирую сначала по году, затем по месяцу и, наконец, подень.Естественно, вы можете изменить порядок сортировки в соответствии с вашими потребностями.
Я надеюсь, что смогу решить вашу проблему:)