スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Ruby]rexmlを使用してみる

rexmlを触った時のメモです。

サンプルのxmlファイル(address_book.xml)。
<?xml version='1.0' encoding='UTF-8'?>
<address_book>
<address type='a' id='1'>
<name>佐藤</name>
<zip>111-1111</zip>
<address>東京都</address>
</address>
<address type='b' id='2'>
<name>鈴木</name>
<zip>222-2222</zip>
<address>埼玉県</address>
</address>
<address type='a' id='3'>
<name>田中</name>
<zip>333-3333</zip>
<address>神奈川県</address>
</address>
</address_book>

以下はサンプルのコード。
require "rexml/document"

#xmlファイルを読み込む
doc = REXML::Document.new(File.new("address_book.xml"))

#xpathで指定した要素を配列として繰り返し処理
doc.elements.each("address_book/address[@type='b']"){|address|
#属性をまとめて取得して出力
#address.attribute("id")で特定の属性を取得することも可能
address.attributes.each{|k, v|
puts k + ":" + v
}
#子要素の名前を指定してテキストを出力
puts address.elements["name"].text
#適当に書き換える
address.elements["name"].text = "遠藤"
}

#ファイルへ出力
#doc.write(STDOUT)で標準出力
doc.write(File.new("address_book.xml", "w"))

コメントの投稿

非公開コメント

プロフィール

jou4

Author:jou4
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。