HCI XmlSlurper Groovy найти не найдено записей job_information в ту же дату - PullRequest
0 голосов
/ 13 сентября 2018

Мне нужно найти запись с событием 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 записи на одну и ту же дату. И функция поиска ничего не возвращает.

Кто-нибудь знает, как решить эту проблему?

2 записи на одну и ту же дату изображения

1 Ответ

0 голосов
/ 13 сентября 2018

К сожалению, я думаю, что меньше людей знают, о чем вы говорите, и у меня нет доступных сообщений от сотрудников, поэтому я смоделировал ваше сообщение и постараюсь показать, как получить каждое событие типа 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
}

В результате:

largeResult shortResult

Адаптируйте его под свои нужды.

Live: https://groovy -playground.appspot.com /? _ Sm_au_ = iVVR2FSD4MsqWj30

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...