私は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 for DSLの153ページに基づいて、最初のソリューションを作成しました。
考え?理想的なソリューションは、大量のコードを追加せず、追加のライブラリ依存関係を追加しません。私はいつでも JDOM を使用して Java でこのようなことを行うことに頼ることができますが、洗練されたグルーヴィーなソリューションを望んでいました。