rubyでXMLをパースする.

rubyXMLを読み込むサンプル.

#!/usr/bin/ruby

require "rexml/document"

def parse(element)
  
  case element.name
  when "tag"
    puts "tag: #{element.text}"
  else
    element.each { |e|
      if e.class == REXML::Element then 
        # 再帰処理
        puts "elem: #{element.name}"
        parse( e )
      elsif e.class == REXML::Text then
        puts "text: #{e.to_s}"
      end
    }
  end
end

doc = nil;
filename = ARGV[0]
File.open(filename) { |fp|
   doc = REXML::Document.new fp
}

doc.elements.each { |element|
  parse(element)
}