我有一个要求,我必须使用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问题。
由于 亚坦
答案 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>
这不是您在问题中的结果 - 但根据上述假设,这是正确的。