読者です 読者をやめる 読者になる 読者になる

argius note

プログラミング関連

開発しています



REXML DOMの場合

Ruby

RubyXMLライブラリ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
$