下面是我的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>
答案 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