3

我的 xml 数据如下所示:

<persons>
  <person key="M">John Doe</person>
  <person key="N">Jane Doe</person>
</persons>

我想将它们收集到地图列表中,例如

[[key: M, name: John Doe], [key: N, name: Jane Doe]]

我使用 XmlSlurper 将数据放入变量“p”之后:

p.collect { [key: it.@key.text(), name it.text()] }

但我明白了

[[key: MN, name: John DoeJane Doe]]

显然我做错了什么,但我不知道是什么。我尝试了多种方法,但得到了相同的答案。

4

1 回答 1

4

尝试children()从根节点查找。

def xml = """
<persons>
  <person key="M">John Doe</person>
  <person key="N">Jane Doe</person>
</persons>
"""

def slurper = new XmlSlurper().parseText( xml )

assert [
    [key:'M', name:'John Doe'], 
    [key:'N', name:'Jane Doe']
] == slurper.children().collect { 
    [ key: it.@key.text(), name: it.text() ] 
}
于 2014-08-26T01:15:32.197 回答