Groovy   发布时间:2022-04-12  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用groovy遍历每个xml节点,打印每个节点大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个非常简单的(我认为)像这样的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>

我面临的问题是,我不能简单地用这个代码分别得到每个节点…它正在打印所有的东西,我真正想要做的是将每个节点收集到一个地图中,然后询问/转换地图中的一些键/值对并替换它们(我知道……)

这是我可怕的代码……有人有机会让我朝着正确的方向前进吗?

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"
}

在地图内操纵它会更容易吗? (我首先使用地图@L_801_7@了这个xml,认为有一些简单的方法可以使用XML …我开始怀疑经过几天的闲逛并且基本上无处可去)

感谢致敬

解决方法

继续获取内部节点的原因是因为您错误地迭代外部列表两次.内部循环应仅在标记上迭代:

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

大佬总结

以上是大佬教程为你收集整理的使用groovy遍历每个xml节点,打印每个节点全部内容,希望文章能够帮你解决使用groovy遍历每个xml节点,打印每个节点所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。