Ruby: ファイル内のテキストを置き換えるにはどうすればよいですか?

概要

次のコードは XML ファイル内の行です。

<appId>455360226</appId>

ルビを使って2つのタグ間の数字を別の数字に置き換えるにはどうすればよいですか?

解決策

ファイルの内容を 1 ステップで変更することはできません (ファイル サイズが変更される可能性がある場合、少なくとも私が知っている限りではありません)。 ファイルを読み取り、変更されたテキストを別のファイルに保存する必要があります。

replace="100"
infile = "xmlfile_in"
outfile = "xmlfile_out"
File.open(outfile, 'w') do |out|
  out << File.open(infile).read.gsub(/<appId>\d+<\/appId>/, "<appId>#{replace}</appId>")
end  

または、ファイルの内容をメモリに読み取り、後から変更した内容でファイルを上書きします。

replace="100"
filename = "xmlfile_in"
outdata = File.read(filename).gsub(/<appId>\d+<\/appId>/, "<appId>#{replace}</appId>")

File.open(filename, 'w') do |out|
  out << outdata
end  

(動作することを願っていますが、コードはテストされていません)