比较XSLT中的朱利安日期

时间:2016-10-12 00:15:43

标签: xml xslt julian

我有一个要求,我必须使用XSLT从日期列表中找出julian中最近的日期时间。

如果我传递以下XML

输入:

<Orders>
<Order>
<OrderNumber>100</OrderNumber>
<Date>116256</Date>
</Order>
<Order>
<OrderNumber>101</OrderNumber>
<Date>116256</Date>
</Order>
<Order>
<OrderNumber>102</OrderNumber>
<Date>116276</Date>
</Order>
</Orders>

输出:

<Result>
<Date>116256</Date>
</Result>

请帮我解决XSLT问题。

由于 亚坦

1 个答案:

答案 0 :(得分:3)

假设您的“日期”是数字,并且这些数字随着时间的推移而增加,您只需按日期排序,降序,并获得第一个的日期:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

<xsl:template match="/Orders">
    <Result>
        <xsl:for-each select="Order">
            <xsl:sort select="Date" data-type="number" order="descending"/>
            <xsl:if test="position()=1">
                <xsl:copy-of select="Date"/>
            </xsl:if>
        </xsl:for-each>
    </Result>
</xsl:template>

</xsl:stylesheet>

应用于您的示例输入,结果将是:

<?xml version="1.0" encoding="UTF-8"?>
<Result>
   <Date>116276</Date>
</Result>

这不是您在问题中的结果 - 但根据上述假设,这是正确的。