使用groovy将XML转换为Map

时间:2018-08-20 14:22:47

标签: json groovy xml-parsing xml-namespaces

我有一些XML想要转换为Map。我使用了将XML转换为JSON,然后放大json映射的中间方法:

import org.json.XML
import groovy.json.JsonSlurper
  Map parseXml(String input) {
    String json = XML.toJSONObject(input).toString()
    new JsonSlurper().parseText(json)
  }

但是,如果您有名字间距,它不会被删除。

例如

<ns2:someObject xmlns:ns2="http://someLink">
  <someOtherObject>
    <something>SOME_THING</something>
  </someOtherObject>
  <someOtherObject>
    <something>SOME_THING_ELSE</something>
  </someOtherObject>
</ns2:someObject>

将以

结尾
{
  "ns2:someObject": {
    "xmlns:ns2": "http://someLink",
    "someOtherObject": [
      {
        "something": "SOME_THING"
      },
      {
        "something": "SOME_THING_ELSE"
      }
    ]
  }
}

但是我希望它最终像这样:

{
  "someObject":  [
      {
        "something": "SOME_THING"
      },
      {
        "something": "SOME_THING_ELSE"
      }
    ]
}

有人知道我如何在不重新发明轮子的情况下实现这一目标吗?

我已经发现一个post与我的有点类似,但是它有不同的方法,这就是为什么我问我的问题。 我给出的示例只是一个示例,但是有someObjects的多个条目,另一篇文章中的给定答案不包括。 其次,它确实遍历XML并创建它的映射-这就是我对reinventing the wheel的意思。我确信必须已经有一个库正在执行此操作,所以对我来说,自己编写解析代码似乎是错误的。

非常感谢

0 个答案:

没有答案