首页 > 解决方案 > 从 XSLT 中的不同节点查找最大日期

问题描述

下面是我的 XML 代码,其中有多个日期节点。我需要找到所有这些不按任何特定节点顺序的日期的最大日期。

<?xml version="1.0" encoding="UTF-8"?>
<ns1:Workers>
<ns1:Worker>
    <ns1:Summary>
        <ns1:Employee_ID>12345678</ns1:Employee_ID>
        <ns1:Name>David J Rock</ns1:Name>
    </ns1:Summary>
    <ns1:Personal>
        <ns1:Birth_Date>1965-05-03</ns1:Birth_Date>
    </ns1:Personal>
    <ns1:Status>
        <ns1:Employee_Status>Active</ns1:Employee_Status>
        <ns1:Active_Status_Date>2015-01-16</ns1:Active_Status_Date>
        <ns1:Hire_Date>2015-01-16</ns1:Hire_Date>
        <ns1:Original_Hire_Date>2012-04-16</ns1:Original_Hire_Date>
    </ns1:Status>
    <ns1:Position>
        <ns1:Effective_Date>2015-01-16</ns1:Effective_Date>
    </ns1:Position>
    <ns1:Compensation>
        <ns1:Effective_Date>2018-03-02</ns1:Effective_Date>
    </ns1:Compensation>
    <ns1:Additional_Information>
        <ns1:Location_Effective_Date>2015-01-16</ns1:Location_Effective_Date>
    </ns1:Additional_Information>
</ns1:Worker>

标签: xmlxslt

解决方案


该示例甚至没有ns1为其使用的前缀定义名称空间,因此您无法使用 XML 解析器对其进行解析,但假设您有任何名称空间声明,那么maxXSLT 2 或 3 中的通用用法是<xsl:value-of select="max(//*[not(*) and . castable as xs:date]/xs:date(.))"/>https://xsltfiddle.liberty -development.net/6qVRKwm


推荐阅读