REXML
Ruby の XML ライブラリ REXML を試す。(REXML - Home)
Rubyクックブック ―エキスパートのための応用レシピ集 を買ったが、REXML については書かれていない。オリジナルの Ruby Cookbook (Cookbooks (O'Reilly)) には REXML が一章使われて説明されているらしい。
#!/usr/bin/env ruby require "rexml/document" include REXML xml = <<EOS <records> <memo>メモ</memo> <record> <item> <title lang="ja">日本語</title> <title lang="en">ENGLISH</title> </item> </record> </records> EOS doc = Document.new xml doc.elements.each("/records/record") do |el| el.elements.each("item") do |item| puts item item.elements.each("title") { |e| puts e.text } item.elements.each("title[1]") { |e| puts e } item.elements.each("title[2]") { |e| puts e.text } item.elements.each("title[@lang='ja']") { |e| puts e.text } item.elements.each("title[@lang='en']") { |e| puts e } end end puts doc.root.elements["memo"].text
実行結果
<item> <title lang='ja'>日本語</title> <title lang='en'>ENGLISH</title> </item> 日本語 ENGLISH <title lang='ja'>日本語</title> ENGLISH 日本語 <title lang='en'>ENGLISH</title> メモ