Redmine や Trac の wiki などを使ってプロジェクト内で情報共有している HTMLベースのコンテンツを、プログラムで取り扱うやり方を考えていて、Groovy でも使ってみようかと思い立つ。
で、やっぱり Eclipse で使いたいのでプラグインを入れる。Indigo なら update site は ここで、Required とマークされている Groovy Eclipse ってのがあるから、これを選択してインストール。
インストールできたら、お試しプロジェクトを作る。パッケージエクスプローラ上の右クリから New -> Other と進むと、Groovy Project がリストに出てくるから、選択して適当に操作すると、Groovy Project が生成される。
適当に Hello World を書いて、main() メソッド上の右クリから[Run As]を選択すると、サブメニュー、[1 Groovy Console], [2 Groovy Script], [3 Java Application]が表示される。どれを選んでも、同じコードが同じように実行される。
これで、Eclipse で Groovy が使えるようになった。
Groovy 自体、たいして使ったことがないので、練習がてら「wikipedia の適当なページから「他の言語」にリストアップされている言語を、標準出力に書き出す」という簡単なお題をやってみる事にする。
Groovy で HTTP GET や HTML/XML を扱う方法をググりながら、以下のようなコードを書いてみた。
class Ex2 { static void main(args){ new XmlSlurper( new org.cyberneko.html.parsers.SAXParser()) .parse("http://ja.wikipedia.org/wiki/秋刀魚") .depthFirst() .grep{it.name() == 'DIV' && it.@id == 'p-lang'}[0] .DIV.UL.LI.each { println it.text() } } }Eclipse から実行すると、秋刀魚を解説している10個の言語の名前が書き出される。あまり便利ではなかったが、デバッガも一応使える。
XmlSlurper のコンストラクタに渡しているものは、NekoHtml の SAXParser というやつで、HTML にタグを補完して well-formed な XML として扱えるようにしてくれる。
使えるようにするには、ここから zip か tgz をダウンロードして、中の nekohtml.jar と xercesImpl.jar (または xercesMinimal.jar )を、~/.groovy/lib 下に置けばいい。
0 件のコメント:
コメントを投稿