XML 宣言部を書き変えるスクリプト

私の環境では、Sandcastle を使って HTML ヘルプを生成するとき、XML ドキュメントの宣言部に standalone の記述があると生成に失敗します。例えばこんな風に。

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

standalone の部分を削除すれば生成に成功します。そこで standalone の部分を削除するスクリプトを Ruby で作ってみました(自分用にメモしておきます)。

# xml ファイルを開いて、宣言部の standalone = "no" を削除するスクリプト
Dir.glob("./*.xml").each do |path|
  newname = path + ".back"
  File.rename(path, newname)

  from = File.open(newname, "r")
  to = File.open(path, "a")

  from.each do |line|
    newline = line.gsub(/standalone="no"/, '')
    to.write(newline)
  end

  from.close
  to.close

  File.delete(newname)
end

こういったものを手軽に作れるのが、スクリプト言語の魅力ですね。