是否可以使用xsl对以下xml进行排序(以mm / dd / yyyy格式按日期分组子组):
<Data version="2.0">
<Group>
<SubGroup>
<Date>11/14/2011</Date>
</SubGroup>
<SubGroup>
<Date>10/25/2011</Date>
</SubGroup>
</Group>
<Group>
<SubGroup>
<Date>01/14/2008</Date>
</SubGroup>
<SubGroup>
<Date>11/01/2005</Date>
</SubGroup>
</Group>
</Data>
到这一个:
<Data version="2.0">
<Group>
<SubGroup>
<Date>10/25/2011</Date>
</SubGroup>
<SubGroup>
<Date>11/14/2011</Date>
</SubGroup>
</Group>
<Group>
<SubGroup>
<Date>11/01/2005</Date>
</SubGroup>
<SubGroup>
<Date>01/14/2008</Date>
</SubGroup>
</Group>
</Data>
我认为有两个任务:1)按内部节点2中的值对子组进行排序。按特殊格式按日期排序。如果你知道如何解决(1)按整数值而不是日期排序的问题,请发一个答案。
答案 0 :(得分:3)
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="Group">
<xsl:copy>
<xsl:apply-templates select="SubGroup">
<xsl:sort select="concat(
substring(Date, 7, 4),
substring(Date, 1, 2),
substring(Date, 4, 2)
)"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>