2008年01月06日(日)更新 |
■特定の属性が無い要素を削除(sample10.rb)
たけち: 前回は要素から属性を削除する方法を学んだね。今回は、要素に指定した属性があるかどうかを判断し、要素を削除する方法を学ぶね。 さらら: はい。 |
■読み込むXMLファイルと出力するXMLファイル
たけち: 今回は、XMLファイルを読み込んで、それに含まれる要素の指定の属性が無い要素を削除したものをXMLファイルとして出力してみるね。
|
読み込みXMLファイル sample10_in.xml |
---|
<?xml version="1.0" encoding="utf-8"?> |
↓ poet属性の無いpoem要素を削除 |
出力XMLファイル sample10_out.xml |
---|
<?xml version="1.0" encoding="utf-8"?> |
たけち: つまり、rubyでのXMLデータの処理内容は次のようなものになるね |
さらら: manyoという名前のルート要素の下にあるpoem要素を順にたどって、poetの属性があるかどうかをみるのね。 たけち: そうそう。それで、poet属性が無い(nil)だったら、そのpoemを削除するんだ。要素の削除にはElementクラスの"delete_element"メソッドを使うんだよ。 さらら: わかったわ。 たけち: 簡単だね。じゃ、具体的なソースコードの例を見てみよう。 さらら: はい。 |
■Rubyサンプルプログラム(10) sample10.rbのソースコード
行 | Rubyサンプルプログラム(10) sample10.rb |
---|---|
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
require "rexml/document" |
※ここでは、文字コードをutf-8としてsample10.rbを作成しています。 |
たけち: 今回のサンプルは、16行目から18行目がポイントだよ。16行目のif 文の中の さらら: それが、 nil だったら、poet属性が無いってことなのね。 たけち: そうだね。そのときには、17行目の さらら: えぇ。 |
■サンプルプログラムsample10.rbの実行結果の確認
たけち: じゃ、このsample10.rbを実行した結果をみてみよう。コマンドプロンプトウィンドウで
と入力してみて。 さらら: はい。 |
さらら: "sample10_out.xml"というファイルができたわ。 たけち: ちゃんと実行できたみたいだね。じゃあ、"sample10_out.xml"ファイルの内容を見てみよう。 |
さらら: 確かにpoet属性の無いpoem要素が削除されて、XMLファイルができているわ。 たけち: じゃ、今回はここまでにするね。 さらら: はい。ありがとね。 → 次回はドキュメントを丸ごとコピーする sample11.rbです。 (^ ^; |