GPathはGroovyに統合されたパス式言語であり、これによりネストした構造のデータの一部を識別することができるようになります。XMLにおけるXPathと似た目的と作用域をもっています。GPath式を使う2つのメインの領域は、ネストしたPOJOを扱うときやXMLを扱うときです。
例えば興味のあるオブジェクトや要素へのパスをを指定します。
a.b.c -> XMLでは<a>の内部にある<b>の内部の<c>を指す
a.b.c -> POJOでは<a>にあるすべての<b>プロパティの<c>プロパティを指す。
(JavaBeansの a.getB().getC() のようなもの)
XMLでは属性も指定することができます。例えば、
a["@href"] -> すべての要素のhref属性
a.'@href' -> 別の指定方法
a.@href -> XmlSlurper を使った場合の別の指定方法
例
GPathのXMLに対する一番良い例は new/groovy/util/XmlSlurperTest.groovy というテストです。
概略
1.要素をプロパティとしてアクセスする
2.属性にアクセスする
3.要素の内部にアクセスする
もし要素が親ノードだった場合、すべての子要素のtextを表示します。
3.children() と parent() を使ったDOM探査
4.式を使って要素を探す
別の例
次のはWEBページ上に一覧化された.xmlファイルへのリンクを一覧ですべて取得する2行の例です。Neko parser はWell formedではないhtmlをパースするために使われ、Groovyの標準の配布物の一部にとして移植されています。
詳細情報
こちらも参照してください: Japanse Processing XML