2016-06-17 42 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,我需要提取國家ID。在上面的例子中,對於id = 1,我需要country_code = 10(這對於id = 2,country_code = 10是一樣的)。

我看到rest-assured使用groovy語法來遍歷xml文檔,但是因爲我沒有groovy的經驗,所以我被卡住了。

我試圖像這樣(用硬編碼ID):

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

返回國家ID爲1的提供者是活躍的ID,但是這是行不通的。

你能給我一些提示嗎?

回答

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