gpt4 book ai didi

xml - 使用 groovy 遍历每个 xml 节点,打印每个节点

转载 作者:数据小太阳 更新时间:2023-10-29 01:44:36 32 4
gpt4 key购买 nike

我有一个像这样的非常简单(我认为)的 xml 文件...

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

<Things>
<thing indexNum='1'>
<a>123</a>
<b>456</b>
<c>789</c>
</thing>
<thing indexNum='2'>
<a>123</a>
<b>456</b>
<c>789</c>
</thing>
</Things>

我面临的问题是我不能简单地使用此代码分别访问每个节点...它正在打印所有内容,而我真正想做的是将每个节点收集到 map 中,然后询问/转换 map 中的一些键/值对并替换它们(我知道,在路上......)

这是我可怕的代码...是否有人可以让我朝着正确的方向前进?

def counter = 0

Things.thing.each { tag ->
counter++
println "\n-------------------------------- $counter ------------------------------------"

Things.thing.children().each { tags ->
println "$counter${tags.name()}: $tags"
return counter
}
println "\n$counter things processed...\n"
}

在 map 内部操作它会更容易吗? (我首先用 map 生成了这个 xml,认为会有一些简单的方法来处理 XML ......在闲逛了几天并且基本上无处可去之后我开始怀疑)

感谢和问候

最佳答案

你一直获取内部节点的原因是因为你错误地迭代了外部列表两次。内部循环应该只迭代 tag:

doc = new XmlSlurper().parse("things.xml")
doc.thing.each { thing ->
println "thing index: ${thing.@indexNum}"
thing.children().each { tag ->
println " ${tag.name()}: ${tag.text()}"
}
}

输出:

thing index: 1
a: 123
b: 456
c: 789
thing index: 2
a: 123
b: 456
c: 789

关于xml - 使用 groovy 遍历每个 xml 节点,打印每个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15077592/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com