2008年05月18日(日)更新 補足: REXML API documentの参照方法を追加しました |
■Documentからはじめましょう(sample1.rb)
たけち: さてと、前回でRubyの準備ができたから、今回はとりあえず簡単なXMLデータを読んでみよう。 さらら: はい。。。あっ、あのね。 たけち: なに? さらら: XMLデータを読む、ってどんな風に読むの? たけち: あっ、ごめんごめん。Ruby(実際には、REXMLというライブラリ)でDOMとSAXを扱えるんだよ。だから、ここではXMLファイルを読んで、その構造をDOMでたどったり、新しい要素を作ったりしてようってことだよ。 さらら: そうなのね。わかったわ。 たけち: まずは、要素がひとつだけの簡単なXMLデータを作っておこう。 |
※前回インストールしたRuby 1.8.6には、DOMとSAXをサポートしているREXMLというXMLライブラリが含まれています。 |
サンプルXMLデータ(1) sample1.xml |
---|
<?xml version="1.0" encoding="utf-8" ?> |
さらら: sampleという名前の要素がひとつだけあるのね。 たけち: そうだね。これをDOMの視点で見てみるとつぎのような図になるね。いっしょに、REXMLではどのようにたどってゆくかを描いておくね。 さらら: はい。 |
|
■Rubyサンプルプログラム(1) sample1.rbのソースコード
さらら: 意外と簡単そうね。 たけち: そう思ってもらえて、よかった。じゃあ、さっそくだけど、次のRubyのソースコードをみて。Rubyのソースコードファイルには、".rb"をつけることを覚えておいてね。 さらら: はい。 |
行 | Rubyサンプルプログラム(1) sample1.rb |
---|---|
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 |
require "rexml/document" |
さらら: えっ、これだけなの? Javaのときよりもずっと短いのね。 たけち: そうだね。じゃ、少しずつ見てゆくね。まず、1行目でXMLを処理してくれるREXMLを用意しているね。 さらら: あっ、そうなんだ。これは必ず書いておくのね。 たけち: そうだね。それから2行目は、 さらら: はい。 |
■XMLファイルのOpen
たけち: で、XMLファイルのOpenは、6〜9行目で行っているよ。8行目の さらら: ふ〜ん。 たけち: ともかく、このdoc = REXML::Document.new(xmlfile)からXMLデータの処理ができるようになるってことだね。 さらら: あっ、そうなのね。 |
■最初の子ノード要素(Element)の取得
たけち: 13行目の さらら: へぇ、ほんとに簡単だわ。 |
■Elementの名前とTextの取得
たけち: あともなんとなく想像がつくよね。14行目の さらら: うんうん。じゃあ16行目は、その要素のTextを取得しているのよね、そうでしょ。 たけち: そうだね。 さらら: 17行目は?? たけち: うん。じつは、REXMLの処理ではUnicodeで扱われているんだ。そのために、windowsのコマンドプロンプトに表示するために、 さらら: あっ、そういうことだったのね。 |
■サンプルプログラムsample1.rbの実行結果の確認
たけち: じゃ、このsample1.rbを実行した結果をみてみよう。起動は さらら: はい。 |
さらら: 要素名が、"sample"、テキストが"サンプル_1です"って表示されたわ。 たけち: これで大体の雰囲気はつかめたよね。 さらら: えぇ。思ったよりずっと簡単だったわ。これなら私でもできそうな気がするわ。 たけち: おつかれさま。今回はここまでにしておくね。次回から、少しずつ詳しいことを学んでゆこうね。 さらら: は〜い!! (^ ^* →次回は子要素をたどるです。 (^ ^; |
■補足: REXML API documentの参照方法
(1) REXML API Doc (zip)のダウンロード |
次のサイトから、REXML API Docs (zip) または REXML API Docs (tgz)をダウンロードします。 REXMLのサイト = http://www.germane-software.com/software/rexml/ |
(2) REXML API Docs (zip)の解凍 |
ダウンロードしたAPI Docs (zip) または REXML API Docs (tgz)を適当なディレクトリに解凍します。 |
(3) 解凍したディレクトリの docs/index.htmlを開く |
解凍したディレクトリの doc/index.htmlを開きます。 |
(4) クラスやメソッドを参照 |
図に、簡単な参照方法を示します。 |