我是新来的Groovy - 我希望这是解决一个简单的事情。 我读XML文档中,然后我能够访问这样的数据:
def root = new XmlParser().parseText(xmlString)
println root.foo.bar.text()
我想这样做,是已加载从文件或数据库的路径“foo.bar”部分,这样我可以做这样的事情:
def paths = ["foo.bar","tashiStation.powerConverter"] // defined for this example
paths.each {
path ->
println path + "\t" + root.path.text()
}
显然,作为写不工作的代码......我想,也许这会工作:
paths.each {
path ->
println path + "\t" + root."${path}".text()
}
......但事实并非如此。 我根据我的Groovy的PG的153对,其中动态方法可以以类似的方式来创建DSL初步的解决方案。
思考? 理想的解决方案不会增加显著代码量,并不会增加任何额外库的依赖。 我总能回落到这样的东西在Java中使用JDOM,但我希望一个优雅时髦的解决方案。