【问题标题】:Date Sorting in XSLT 3.0XSLT 3.0 中的日期排序
【发布时间】:2020-11-09 09:36:21
【问题描述】:

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

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

需要帮助解决。

【问题讨论】:

    标签: sorting date xslt


    【解决方案1】:

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

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

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

    然后你可以使用&lt;xsl:sort select="f:us-date-to-iso(Date)"/&gt;进行排序

    【讨论】:

    • 谢谢@Michael Key,如果日期没有出现或为空白,是否可以避免调用该函数?
    • 后续问题最好作为新问题提出,而不是作为对先前问题答案的评论。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 2021-01-16
    • 2019-12-14
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    相关资源
    最近更新 更多