文字通りずるずると読み込むことが出来ます。
Groovyにはもう一つXmlParserというものがありますが、読み込みにはXmlSlurperのほうが適しています。
以下にコードを紹介します。
import groovy.xml.MarkupBuilder
def writer = new StringWriter()def xml = new MarkupBuilder(writer)xml.example() { person(name: 'hoge', type: 'hage'){ city('Tokyo') remarks('特に無し') } person(name: 'moge', type: 'debu', foo: 'bar'){ city('Saitama') remarks('だ埼玉って言わないで') }}def doc = new XmlSlurper().parseText(writer.toString())println "city=${doc.person.find { it.@type == 'debu' }.city}"
出力結果:
city=Saitama
先日のものに処理を追加したものになります。
XMLの要素の特定はGPathと呼ばれるXMLPathに似ている形式で指定します。
この機能はGroovyの得意とするDSLで定義されサンプルでも提示したように
非常に分りやすい定義で希望の要素を抽出することが出来ます。
この機能もGroovyがツールに向いている理由の一つかと思います。
またDSL(Domain Specific Language)を自分で定義することも出来ますので
自分のやりたいことに特化したものを定義することも出来ます。
何れそのやり方を紹介したいと思います。
プログラミングGROOVY/関谷 和愛
¥3,360
Amazon.co.jp