2016-06-17 44 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