Groovy xml 处理语法

Groovy xml processing syntax

我有一个 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);

到 return ID 为 1 的提供者活跃的国家/地区的 ID,但这不起作用。

你能给我一些提示吗?

如果不止一个国家​​可以匹配,那么做这样的事情会更安全:

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