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>
解决方案
该示例甚至没有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
推荐阅读
- material-ui - 自定义图标
组件 - powershell - 搜索文件时可以在目录路径中使用 %username% 吗?
- r - 检查两列的条件,如果为真,则操作 R 中的第三列
- c++ - 对于相同的精确计算,无法解释的不同 omp_get_wtime()
- java - FragmentManager 清理 .addToBackStack
- c# - 向 AAD OpenIDConnect 认证用户添加自定义声明
- c# - 复杂的 LINQ to XML 查询帮助
- python - LogEntry 是做什么的?
- typescript - 使用 observables 返回 http 响应的最佳模式
- angular - Karma 测试随机重启并在 Edge 中“加倍”iframe