0

我需要在 job_information 中找到一个包含事件 Hire 的记录。

def Message processData(Message message) {

//Get body from message 
def body = message.getBody(java.lang.String)
//Parse body
def queryCompoundEmployeeResponse = new XmlSlurper().parseText(body)

queryCompoundEmployeeResponse.CompoundEmployee.each{
  it.person.employment_information.each{
    def startDate = it.job_information.find{
      j->(j.event.text() == 'H') 
    }.start_date.text()
  }
}

但是,对于该员工,同一日期有 2 条记录。find 函数什么也不返回。

有谁知道如何解决这个问题?

2 条记录在同一日期图像

4

1 回答 1

0

不幸的是,我认为很少有人知道你在说什么,而且我没有来自员工大院的任何信息,这就是为什么我模拟你的信息并尝试展示如何获取每个事件类型 H,无论它是什么日期拥有。

这应该搜索事件 H 并返回每个人节点,无论日期是否彼此相等。

def stringXML = 
'<personDatabase>'+
        '  <person><firstName>John</firstName><lastName>Doe</lastName><created>2016-05-23T09:41:39.000Z</created><event>H</event></person>'+
        '  <person><firstName>Jane</firstName><lastName>Smith</lastName><created>2018-05-10T09:41:39.000Z</created><event>G</event></person>'+
        '  <person><firstName>Robert</firstName><lastName>Doe</lastName><created>2016-05-23T09:41:39.000Z</created><event>H</event></person>'+
'</personDatabase>'

def people = new XmlSlurper().parseText(stringXML)
people.person.findAll { p ->
    p.event.toString().equals('H')
}.each { p ->
    println p.created
}

这导致:

大结果 短结果

使其适应您的需求。

直播:https ://groovy-playground.appspot.com/?_sm_au_=iVVR2FSD4MsqWj30

于 2018-09-13T13:18:57.647 回答