最近、Excel で分析したい xml ファイルを大量に取得しています。(新しいバージョンの) Excel で xml 変換標準を使用する代わりに、多数のファイルに対して自動的にそれを行う Ruby コードを使用したいと考えています。
ただし、rexml についてはあまり詳しくありません。半日の作業の後、たった 1 つの (!) xml ノードを変換するコードを取得しました。これはどのように見えるかです:
require 'rexml/document'
Dir.glob("FILES/archive/*.xml") do |eksemel|
puts "converting #{eksemel}"
filename = (/\d+/.match(eksemel)).to_s
xml_file = File.open("#{eksemel}", "r")
csv_file = File.new("#{filename}.csv", "w")
xml = REXML::Document.new( xml_file )
counter = 0
xml.elements.each("RESULTS") do |e|
e.elements.each("component") do |f|
f.elements.each("paragraph") do |g|
counter = counter + 1
csv_file.puts g.text
end
end
end
end
a)要素の名前と番号を定義する代わりに、Rubyに自動的に実行させ、b)これらすべてをcsvファイルの個別の列として保存する方法はありますか?