Hatena::Grouprubyist

今日も元気にrubyist

2007-05-29newsingの新着pickupゲット復習

とりあえず試してみる 22:24 とりあえず試してみる - 今日も元気にrubyist を含むブックマーク はてなブックマーク - とりあえず試してみる - 今日も元気にrubyist とりあえず試してみる - 今日も元気にrubyist のブックマークコメント

前項で取りあえずメモ用にURLを張ったが…

さっくりと使い方を学ぶならこちら。

no title

上ので物足りなければチュートリアルのコードをコピペ&改変すれば理解が深まる。

REXML Tutorial - Home

この2つをだいたい読んで理解した後、詳しいリファレンスを見ると良い。

REXML API document (ja)

また書籍「Ruby de XML」の付録とし収録されているリファレンス

私家版REXML APIリファレンス

XPathリファレンスも見ればよろし。

REXML 2.4.2のサンプル付きXPathの関数リファレンス

毎回思うが訳してくれた人は天才。

簡単な例

require 'kconv'
require 'rexml/document'
include REXML

# XMLオブジェクト作成
doc = REXML::Document.new File.open("newsing.xml","r")

# (※1)title要素を全て出力
doc.elements.each("//title") do |elem|
  puts elem.text.tosjis
end

#=> 
うわさのビリーはよく見ると " ET " みたい
東芝、「ぷよぷよ」もできる「gigabeat V」
町おこしにも効く!?日本人専用 チリの首都サンティアゴ地下鉄マップ
ストールマンは正しかった - @IT
大黒将志公式サイト: シーズン終了

# (※2) クラスを出力
puts doc.class #=> REXML::Document
puts doc.root.class #=> REXML::Element
puts doc.elements.class #=> REXML::Elements

※1のような書式でtitle要素を全て出力することが出来る。しかしREXMLを使いこなすには、※2のようにそれぞれにクラスの違いを意識しなければならない…という所で次回に続く。