【发布时间】:2017-09-22 16:31:22
【问题描述】:
我需要 XPath 1.0 中的帮助来过滤以下 XML,以便我只获得具有不同“id”和最高“有效性/日期”的条:
<foo name="fooName">
<bar name="barName">
<id>1111</id>
<validity>
<date>20170920</date>
</validity>
</bar>
<bar name="barName">
<id>1111</id>
<validity>
<date>20170922</date>
</validity>
</bar>
<bar name="barName">
<id>1111</id>
<validity>
<date>20170921</date>
</validity>
</bar>
<bar name="barName">
<id>2222</id>
<validity>
<date>20170921</date>
</validity>
</bar>
<bar name="barName">
<id>2222</id>
<validity>
<date>20170923</date>
</validity>
</bar>
</foo>
我尝试了很多选择和研究,但无法找出确切的解决方案。
过滤后的预期 XML 应如下所示:
<foo name="fooName">
<bar name="barName">
<id>1111</id>
<validity>
<date>20170922</date>
</validity>
</bar>
<bar name="barName">
<id>2222</id>
<validity>
<date>20170923</date>
</validity>
</bar>
</foo>
【问题讨论】:
-
这基本上是一个分组问题 - 见:jenitennison.com/xslt/grouping/muenchian.html 在每个组内,按日期排序并输出第一条(或最后一条)记录。
-
@michael.hor257k 谢谢。我将探索更多关于 Muenchian 分组的内容。