如何使用groovy收集nodeItem以列出/映射?

时间:2019-04-03 08:28:05

标签: xml groovy

我有xml,并且必须对其进行转换。如何正确制作。 如何使用Groovy解析和分组xml。还是请给我建议。

<getDataResponse>
    <dataItem> 
          <osVer>1.1</osVer>
          <mobileVer>iPad7</mobileVer>
          <email>mail</email>
          <id>1</id> 
    </dataItem>
    <dataItem> 
          <osVer>1.18</osVer>
          <mobileVer>iPhone5</mobileVer>
          <email>mail</email>
          <id>1</id>
   </dataItem>
</getDataResponse>

我编写以下代码来收集我的数据:

 def res = []
 for(item in dataResponse.children()){
    res << item.findAll{
        it.name().equals('osVer') || 
                    it.name().equals('mobileVer')
    }.inject([:]){
        map, ch -> map + [(ch.name()) : ch.text()]
    }
}
res.join()

我想得到这个输出:

<getDataResponse>
    <dataItem> 
          <info>[osVer:1.1, mobileVer: iPad7]
                [osVer:1.8, mobileVer: iPhone5]</info>
          <email>mail</email>
          <id>1</id> 
    </dataItem>         
</getDataResponse>

0 个答案:

没有答案