XMLファイルの処理
お仕事でXMLファイルをいじくる必要があったので、すこしRubyでやってみた。
Rubyでは、REXMLと言うライブラリを使うらしい。
ぼくの用途としては、既存のXMLファイルをパースして、要素を書き換えて、ファイルにダンプできればよいので、その例を備忘録代わりに載せる。
#!/usr/bin/env ruby1.9 -w require "rexml/document" basefile = "Sample.xml" doc = REXML::Document.new(File.new(basefile)) # XMLファイルをパース doc.elements.each('GridList/Y/Grid') do |x| id = x.attributes["ID"].to_i # <Grid ID="10">Gridタグの属性を取得 if (id >= 10 && id <= 48) && id % 2 == 0 val = x.elements["Position"].text # <Grid ID="10><Position>1.0</Position> newval = val.to_f *2.0 x.elements["Position"].text = newval.to_s # 新しい値に更新 end end print doc # ダンプ
他にもXMLのライブラリはあるようだけど、コレが一番簡単そう。