HCI XmlSlurper Groovy 在同一日期找不到 job_information 条记录
HCI XmlSlurper Groovy find not found job_information records in same date
我需要在 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 条记录。
而查找函数 return 什么都没有。
有人知道如何解决这个问题吗?
2 records at the same date image
不幸的是,我认为很少有人知道你在说什么,而且我没有任何来自员工大院的消息,这就是为什么我模拟了你的消息并尝试展示如何获得每个事件类型 H,不管它有什么日期。
这应该搜索事件 H 和 return 每个人节点,无论日期是否相等。
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
我需要在 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 条记录。 而查找函数 return 什么都没有。
有人知道如何解决这个问题吗?
2 records at the same date image
不幸的是,我认为很少有人知道你在说什么,而且我没有任何来自员工大院的消息,这就是为什么我模拟了你的消息并尝试展示如何获得每个事件类型 H,不管它有什么日期。
这应该搜索事件 H 和 return 每个人节点,无论日期是否相等。
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