REXML DOMの場合
RubyのXMLライブラリREXMLを使ってみました。
次のスクリプトは、XMLをタブ区切りテキストに変換します。コマンドラインから渡されたすべてのファイルを繰り返し処理します。
require "rexml/document" ARGV.each do |path| doc = REXML::Document.new File.new(path) doc.root.elements.each do |e| next unless e.name == "person" next if (name = e.attributes["name"]).nil? puts [name, e.attributes["age"],].join("\t") end end
XMLデータ。
<?xml version="1.0"?> <persons> <person name="John" age="23" /> <person name="Michael" age="35" /> </persons>
結果。
$ ruby rexmltest.rb rexmltest.xml John 23 Michael 35 $