2016-06-17 3 views
0

У меня есть XML, как это:Groovy синтаксис обработки XML

<countries> 
    <country> 
      <country_id>10</country_id> 
      <providers> 
      <provider> 
       <id>1</id> 
       <name>Name</name> 
      </provider> 
      <provider> 
       <id>2</id> 
       <name>Name2</name> 
      </provider> 
     ... 
    </country> 
</countries> 

Это реакция службы я звоню и тестирование с остальными гарантированным. Основываясь на идентификаторе поставщика, мне нужно извлечь идентификатор страны. В приведенном выше случае для id = 1 мне нужен country_code = 10. (То же самое для id = 2, country_code = 10).

Я видел, что для обеспечения уверенности в использовании используется синтаксис groovy для перемещения документа xml, но поскольку у меня нет опыта с groovy, я застрял.

я что-то вроде этого (с закодированным ID) пытаюсь:

path.getList("countries.country.findAll{country -> country.providers.provider.id == '1' }.country_id", Integer.class); 

вернуть идентификатор страны поставщик с идентификатором 1 активен в, но это не работает.

Не могли бы вы дать мне несколько советов?

ответ

1

Если более чем одна страна не может сравниться, было бы безопаснее, чтобы сделать что-то вроде:

countries.country.findAll { country -> 
    country.providers.provider.any{ it.id == '1' } 
}*.country_id 

В противном случае, это может быть просто:

countries.country.find { it.providers.provider.any{ it.id == '1' }}.country_id 
+0

Это является удивительным, спасибо! – TamasGyorfi

+0

рад помочь :) – kunal

Смежные вопросы