2008年01月03日(木)更新 |
■属性を見る(sample3.rb)
たけち: 前回は要素の子要素をたどってみたね。 さらら: ええ。elements.each を使ったわ。 たけち: で、今回は、要素の属性を見る方法を学ぼうね。 さらら: そうね。要素のあとは属性よね。 たけち: まず、そのメソッドを見ておくね。あるElementの属性(Attribute)を見るためのメソッドはいくつかあるんだけど、今回は、Elementのattributes.eachメソッドを使うんだ。その様子を次の図に示しておくね。 |
※Elementのattributes.eachメソッド、という言い方は正確ではありません。Elementのattributesメソッドで属性セット(Attributes)を取得し、Attributesのeachメソッドでひとつひとつの属性の名前と値を取得しています。 |
■attributes.eachメソッド
さらら: あっ。前回の Elementのelements.eachメソッドの働きに似ているわね。 たけち: そうだね。書き方も前回に似ているよ。 じゃあ、つぎに今回サンプルとして使うxmlデータを確認しておくね。 |
サンプルXMLデータ(3) sample3.xml |
---|
<?xml version="1.0" encoding="utf-8" ?> |
さらら: あら、久しぶりに万葉集からとってきたサンプルデータね。manyo(万葉)という名前の要素の子要素にpoem(歌)という名前の子要素が3つあるのね。で、poem(歌)には、no(歌番号)とpoet(歌人)の2つの属性があるってことね。 たけち: そうだね。 |
■Rubyサンプルプログラム(3) sample3.rbのソースコード
たけち: じゃあ、さっそくだけど、次のRubyのソースコードをみて。 さらら: はい。 |
行 | Rubyサンプルプログラム(3) sample3.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" |
さらら: sttributes.eachメソッドは、16行目にあるわ。 たけち: そうだね。14〜23行目で各poem要素を処理しているね。そのpoem要素の属性、nameとvalueを取得して表示している箇所が、16〜18行目だね。 さらら: えぇ。わかるわ。 |
■サンプルプログラムsample3.rbの実行結果の確認
たけち: じゃ、このsample3.rbを実行した結果をみてみよう。起動は さらら: はい。 |
さらら: 属性名"no"、"poet"とそれぞれの値が表示されてるわ。 たけち: そうだね。これで属性の見方も分かったよね。 さらら: えぇ。属性も意外に簡単にできるのね。Rubyなら本当に簡単なのね。 たけち: よかった。じゃあ、今回はここまでにしておくね。おつかれさま。 さらら: は〜い!! (^ ^* →次回は特定の属性を見るです。 (^ ^; |