2007年09月16日(日)更新 |
■特定の属性を見る(sample4.rb)
たけち: 前回は要素の属性を見たね。 さらら: ええ。attributes.each を使ったわ。 たけち: それは要素に記述されているすべての属性を見るときに遣うんだけど、今回は、特定の属性を見る方法を学ぼうね。 さらら: ということは、見たい属性を指定するってことね。 たけち: そうだよ。じゃ、まず、そのメソッドを見ておくね。あるElementの属性(Attributes: 属性セット)はElementのattributesメソッドで得られることを前回やったよね。 さらら: えぇ。 たけち: そのAttributesのget_attributeメソッドを使うと、パラメタで指定した属性を得ることができるんだよ。その様子を次の図に示しておくね。 |
■get_attributeメソッド
さらら: get_attributeメソッドでは、取得したい属性名をパラメタとして指定するのね。 たけち: そうだね。じゃあ、つぎに今回サンプルとして使うxmlデータを確認しておくね。前回のサンプル(sample3.xml)とほとんど同じだよ。 |
サンプルXMLデータ(4) sample4.xml |
---|
<?xml version="1.0" encoding="utf-8" ?> |
さらら: あら、poet(歌人)の属性の記述がない歌が追加されているわ。 たけち: get_attributeメソッドの戻り値が、nil(なにも無い)になるので、それの確認をするために追加したんだよ。 さらら: そうなんだ。 |
■Rubyサンプルプログラム(4) sample4.rbのソースコード
たけち: じゃあ、さっそくだけど、次のRubyのソースコードをみて。 さらら: はい。 |
行 | Rubyサンプルプログラム(4) sample4.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 |
require "rexml/document" |
さらら: get_attributeメソッドは、15行目と17行目にあるわ。 たけち: そうだね。15行目ではno属性を、そして17行目ではpoet属性を取得しているね。no属性は必ずあると想定しているんだけど、poet属性は無いかもしれないので、18行目で nil かどうかをチェックしているね。 さらら: あっ、そうなのね。わかるわ。 |
■サンプルプログラムsample4.rbの実行結果の確認
たけち: じゃ、このsample4.rbを実行した結果をみてみよう。起動は さらら: はい。 |
さらら: "no"属性を使って「〜番歌」、"poet"属性を使って「歌人」がが表示されてるわ。 たけち: そうだね。それに、"poet"属性が無い歌では、「歌人: 不明」となつているよね さらら: えぇ。そうね。 たけち: よかった。じゃあ、今回はここまでにしておくね。おつかれさま。 さらら: は〜い!! (^ ^* →次回は入力XMLファイルのエラーチェックです。 (^ ^; |