为了账号安全,请及时绑定邮箱和手机立即绑定

需要一个 GPath 查询来查找最大日期 + 一个字符串字段

需要一个 GPath 查询来查找最大日期 + 一个字符串字段

Smart猫小萌 2021-09-15 10:36:04
需要一种方法来搜索具有最大日期 + 值 ==“001”的条目如果我这样做是为了找到具有最大日期 + 值 ==“001”的条目,则它不起作用。有没有办法进行组合查询?def xmls = new XmlSlurper().parse(new File("C:/file.xml"));Object oTest = xmls.Test.Entry.find{ v -> v.Value == "001" }.max{ d -> Date.parse('MM/dd/yyyy', d.Date.toString()) 输入xml示例:<Test><Entry>   <Date>01/12/2017</Date>   <Value>001</Value></Entry><Entry>   <Date>02/15/2017</Date>   <Value>001</Value></Entry><Entry>   <Date>03/15/2017</Date>   <Value>002</Value></Entry></Test>我需要的输出是:Date>02/15/2017</Date><Value>001</Value>
查看完整描述

1 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

def xmls = new XmlSlurper().parseText('''<Test>

<Entry>

   <Date>01/12/2017</Date>

   <Value>001</Value>

</Entry>

<Entry>

   <Date>02/15/2017</Date>

   <Value>001</Value>

</Entry>

<Entry>

   <Date>03/15/2017</Date>

   <Value>002</Value>

</Entry>

</Test>''');


Object oTest = xmls.Entry.findAll{ v -> v.Value == "001" }.max{ d -> Date.parse('MM/dd/yyyy', d.Date.toString()) }

println groovy.xml.XmlUtil.serialize(oTest)

结果:


<?xml version="1.0" encoding="UTF-8"?>

<Entry>

  <Date>02/15/2017</Date>

  <Value>001</Value>

</Entry>


查看完整回答
反对 回复 2021-09-15
  • 1 回答
  • 0 关注
  • 118 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信