REXML

http://www.germane-software.com/software/rexml/ REXML - Home
Debianだとlibrexml-rubyという名前でREXML 1.2.5がインストールできるが,なぜかXMLを読んでそのまま書き出すだけで要素間に空白1文字からなる行が増えていく.1300行,70KBのテストXMLデータを10回 REXML::Document.new(IO) → REXML::Document#write(IO) したら50000行,200KBになった... アップグレードしろってことですかね.それにしてもDebianじゃみんなこれを使ってるのか? ニュータイプとして(笑)「設定/データファイルはとりあえずXMLにしてます」と言いたかったのに...
... というわけで最新版のREXML 3.1.2を取ってきて ruby bin/install.rb -t ~/local/lib/ruby/1.6 でインストール. export RUBYLIB=~/local/lib/ruby/1.6 とすると入れた方を優先するようになる.
Ruby 1.6.7でも無事に使えるようだ.10回読み書きしてdiffすると,ほとんど変化はない*1.これならいけるな.

*1:微妙に改行が減ったり,属性の値を囲む引用符が2重から1重に変わったりしていた.