首页 > 解决方案 > XSLT 3.0 中的日期排序

问题描述

我在 XML 中有一个日期字段,它将始终采用 MMDDYYYY 格式。我正在尝试通过以下代码使用日期进行排序:

     <xsl:sort select="format-date(Date, '[M01][D01][Y0001]')"/>

需要帮助解决。

标签: sortingdatexslt

解决方案


嗯,第一个建议是使用国际标准——它们的存在是有原因的。

如果您存储的数据不能使用国际标准,则将数据转换为国际标准格式进行处理。所以你想在你的样式表中有一个函数

<xsl:function name="f:us-date-to-iso" as="xs:date">
   <xsl:param name="us-date" as="xs:string"/> <!-- format MMDDYYYY -->
   <xsl:sequence select-"xs:date(replace($us-date, '(..)(..)(....)', '$3-$1-$2'))"/>
</xsl:function>

然后你可以使用排序<xsl:sort select="f:us-date-to-iso(Date)"/>


推荐阅读