以下代码是xml文件中的一行:

<appId>455360226</appId>

如何使用ruby将2个标签之间的数字替换为另一个数字?

最佳答案

一步修改文件内容是不可能的(至少我不知道,文件大小何时会改变)。
您必须阅读文件并将修改后的文本存储在另一个文件中。

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

(希望它能正常工作,代码未经过测试)

关于Ruby:如何替换文件中的文本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7290871/

10-12 05:45