Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 将属性和值收集到字符串列表中_List_Groovy_Xmlslurper_Collect - Fatal编程技术网

List 将属性和值收集到字符串列表中

List 将属性和值收集到字符串列表中,list,groovy,xmlslurper,collect,List,Groovy,Xmlslurper,Collect,我的xml数据如下所示: <persons> <person key="M">John Doe</person> <person key="N">Jane Doe</person> </persons> 我使用XmlSlurper将数据转换成变量“p”后: p.collect { [key: it.@key.text(), name it.text()] } 但我明白了 [[key: MN, name: John

我的xml数据如下所示:

<persons>
  <person key="M">John Doe</person>
  <person key="N">Jane Doe</person>
</persons>
我使用XmlSlurper将数据转换成变量“p”后:

p.collect { [key: it.@key.text(), name it.text()] }
但我明白了

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

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

尝试从根节点查找
子节点()

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() ] 
}
defxml=”“”
无名氏
无名氏
"""
def slurper=new XmlSlurper().parseText(xml)
断言[
[钥匙:'M',姓名:'John Doe'],
[钥匙:'N',姓名:'Jane Doe']
]==slurper.children().collect{
[key:it.@key.text(),name:it.text()]
}

这就解决了它和几个后续问题。事实证明,Stackoveflow比我读过的所有文档都信息丰富。
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() ] 
}