我有以下 xml:
<list>
<cars>
<model>2012</model>
<make>GM</make>
</cars>
</list>
我想将这些值打印为路径:值,如下所示。
list/cars/model : 2012
list/cars/make : GM
我怎样才能实现这个目标?我尝试了 name()
方法,但它只打印子项的名称。我想打印直到元素的整个路径。
我只能使用 xmlSlurper 解析器来执行此操作。
谢谢。
最佳答案
import groovy.util.XmlSlurper
import groovy.util.slurpersupport.NodeChild;
def rootNode = new XmlSlurper().parseText('<root><one a1="uno!"/><two>Some text!</two></root>' )
def printMap
printMap = {node, path->
if(node.getClass() == NodeChild){
node.childNodes().each{
printMap(it, (path ? path + "/" : "") + node.name())
}
} else {
println "${path}/${node.name()}:${node.text()}"
}
}
printMap(rootNode, "")
关于xml - groovy打印xml中元素的路径和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34711262/