从XSLT中的不同节点查找日期的最大值

时间:2018-07-30 18:14:00

标签: xml 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>

1 个答案:

答案 0 :(得分:1)

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