2008年01月27日(日)更新 |
■ドキュメントを丸ごとコピー(sample11.rb)
たけち: 前回は要素に指定した属性があるかどうかを判断し、要素を削除する方法を学んだね。 さらら: はい。 たけち: 今回は、入力したドキュメントの構造全体をそのままコピーしてみるね。 さらら: それって、どういう意味があるの? たけち: うん。そのままだとあんまり意味が無いかもしれないけど、ドキュメントに含まれる要素(Element)のコピーなどを学ぶ前に、簡単だけど最初に学んでおきたいと思ってね。 さらら: そうなんだ。 |
■読み込むXMLファイルと出力するXMLファイル
たけち: 今回は、XMLファイルを読み込んで、それを丸ごとコピーしてXMLファイルとして出力してみるね。読み込みXMLファイルは前回のものと同じでいいよね。
|
読み込みXMLファイル sample10_in.xml |
---|
<?xml version="1.0" encoding="utf-8"?> |
たけち: 今回は、丸ごとコピーだから図で説明する必要は無いよね。 さらら: そっ、そうよね。(^ ^; たけち: じゃ、いきなりだけど、具体的なソースコードの例を見てみよう。 さらら: はい。 |
■Rubyサンプルプログラム(11) sample11.rbのソースコード
行 | Rubyサンプルプログラム(11) sample11.rb |
---|---|
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 |
require "rexml/document" |
※ここでは、文字コードをutf-8としてsample11.rbを作成しています。 |
たけち: 今回のサンプルは、12行目がポイントだよ。 さらら: deep_clone()というのを使うのね。 たけち: そうだね。で、15行目は さらら: はい。 |
■サンプルプログラムsample11.rbの実行結果の確認
たけち: じゃ、このsample11.rbを実行した結果をみてみよう。コマンドプロンプトウィンドウで
と入力してみて。 さらら: はい。 |
さらら: "sample11_out.xml"というファイルができたわ。 たけち: ちゃんと実行できたみたいだね。じゃあ、"sample11_out.xml"ファイルの内容を見てみよう。 |
さらら: 確かに入力の"sample10_in.xml"と同じXMLファイルができているわ。 たけち: ここで使ったdeep_clone()は、ある要素をその子要素を含んでコピーを作るときにも使えるんだよ。これについては、あとでサンプルを作って試してみようね。 さらら: はい。 たけち: じゃ、今回はここまでにするね。 さらら: ありがとね。 →次回は要素をソートして表示 sample12.rbです。 (^ ^; |