HCI XmlSlurper Groovy найти не найденные записи job_information в тот же день
Мне нужно найти запись с событием Hire в job_information.
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 записи на одну и ту же дату. И функция поиска ничего не возвращает.
Кто-нибудь знает, как решить эту проблему?
1 ответ
Решение
К сожалению, я думаю, что меньше людей знают, о чем вы говорите, и у меня нет доступных сообщений от соединения сотрудников, поэтому я смоделировал ваше сообщение и постараюсь показать, как получить каждое событие типа 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
}
Это приводит к:
Приспособьте это к своим потребностям.
Live: https://groovy-playground.appspot.com/?_sm_au_=iVVR2FSD4MsqWj30