Sorting XSLT 3.0中的日期排序

Sorting XSLT 3.0中的日期排序,sorting,date,xslt,Sorting,Date,Xslt,我有一个XML格式的日期字段,它将始终采用MMDDYYYY格式。我正在尝试使用日期按以下代码进行排序: <xsl:sort select="format-date(Date, '[M01][D01][Y0001]')"/> 需要帮助解决问题。好吧,第一点建议是使用国际标准——它们的存在是有原因的 如果无法在存储的数据中使用国际标准,请将数据转换为国际标准格式进行处理。因此,您希望在样式表中有一个函数 <xsl:function name=&q

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

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


需要帮助解决问题。

好吧,第一点建议是使用国际标准——它们的存在是有原因的

如果无法在存储的数据中使用国际标准,请将数据转换为国际标准格式进行处理。因此,您希望在样式表中有一个函数

<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>


然后您可以使用

进行排序。谢谢@Michael Key,如果日期不出现或为空,是否可以避免调用该函数?后续问题最好作为新问题提出,而不是作为对以前问题答案的评论。