2008年03月09日(日)更新 |
■要素をソート(sample13.rb)
たけち: 前回は、入力したXMLデータの要素をソートして表示してみたね。今回は前回のを少し変更して、ソートした要素をXMLファイルとして出力してみよう。 さらら: あっ、はい。どうやるんだっけ。。。(^ ^; たけち: 入力XMLファイルの要素をソートできたから、そのソートした要素をを出力用のXMLデータ構造に順に足してゆけばいいんだね。 さらら: そっか。それをこれまでやったようにXMLファイルとして書き出してあげればいいのね。 |
■読み込むXMLファイル
たけち: 読み込みXMLファイルは前回と同じものを使うね。
さらら: はい。 |
読み込みXMLファイル sample12_in.xml |
---|
<?xml version="1.0" encoding="utf-8" ?> |
たけち: じゃ早速、具体的なソースコードの例を見てみよう。 |
■Rubyサンプルプログラム(13) sample13.rbのソースコード
行 | Rubyサンプルプログラム(12) sample12.rb |
---|---|
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
require "rexml/document" |
※ここでは、文字コードをutf-8としてsample13.rbを作成しています。 |
さらら: 前回よりさらに長いわね。(^ ^; たけち: でも、27行目までは前回と同じことをしているよ。今回のサンプルでは、27行目でソートされた"sorted"というHashを使って、29行目以降で出力するXMLデータを生成して、ファイル出力しているよ。 さらら: あっ、そっか。 たけち: 30〜33行目で、出力用のXMLデータのルート要素としてmanyo要素を作っているね。 さらら: はい。 |
たけち: で、36〜38行目で、ソートされたHashから順にキーと要素(poem)を取り出して、出力用のXMLデータのルート要素 "root_element" に追加()しているね。 さらら: そっか。。。 たけち: そうそう。で、41〜43行目で、出力用のXMLデータをファイルとして書き出しているね。これは今まで何回かのサンプルでもう見てきたから分かるよね。 さらら: えぇ、何度かみているので慣れたわ。 |
■サンプルプログラムsample13.rbの実行結果の確認
たけち: じゃ、このsample13.rbを実行した結果をみてみよう。コマンドプロンプトウィンドウで
と入力してみて。 さらら: はい。。。。。。あっ、sample13_out.xml というファイルができたわ。 たけち: このXMLファイルをブラウザでみてみよう。 |
さらら: 歌人の名前と歌番号の順に、poem要素が並んでいるわ。 たけち: ちゃんと実行できたみたいだね。 さらら: これで、入力したXMLファイルの要素を歌人ごと、歌番号順にソートして出力XMLファイルとして書き出すことができたのね。 たけち: そうだね。じゃ、今回はここまで。 さらら: あっ、はい。ありがとね。 → 次回はURIを指定してXMLファイルを読む sample14.rbです。(^ ^; |