【发布时间】:2019-09-08 23:44:01
【问题描述】:
我有一段代码如下所示:
<root>
<applicant>
<id>XYZ</id>
<group>
<start_date>2019-04-01</start_date>
<end_date>2019-04-01</end_date>
</group>
<group>
<start_date>2019-04-02</start_date>
<end_date>2019-04-02</end_date>
</group>
<group>
<start_date>2019-04-03</start_date>
<end_date>2019-04-03</end_date>
</group>
</applicant>
<applicant>
<id>ABC</id>
<group>
<start_date>2019-05-01</start_date>
<end_date>2019-05-01</end_date>
</group>
<group>
<start_date>2019-05-02</start_date>
<end_date>2019-05-02</end_date>
</group>
<group>
<start_date>2019-05-03</start_date>
<end_date>2019-05-03</end_date>
</group>
</applicant>
</root>
如果来自下一个兄弟姐妹的日期相差 1 天(天数差异为 1),我需要按申请人对其进行分组并合并到一个具有单个开始日期和结束日期的节点中
所以上面的代码实现如下:
<root>
<applicant>
<id>XYZ</id>
<start_date>2019-04-01</start_date>
<end_date>2019-04-03</end_date>
</applicant>
<applicant>
<id>ABC</id>
<start_date>2019-05-01</start_date>
<end_date>2019-05-03</end_date>
</applicant>
</root>
我正在考虑使用 following-sibling:: 或某种重复。
【问题讨论】:
-
如果您确实可以使用 XSLT 2.0 或 3.0,那么我会从问题中删除 XSLT-1.0 标记,以具体说明您可以使用什么版本(特别是因为任何 XSLT 1.0 解决方案都不会很容易)。谢谢!
标签: xslt xslt-2.0 xslt-grouping xslt-3.0