我有一個需求,我需要編輯的一部分xml文件並保存它,但在我的代碼中的一部分xml文件它不保存。我想修改<mtn:ttl>4</mtn:ttl>
到<mtn:ttl>9</mtn:ttl>
,這部分在下面的代碼中得到了修改,但是當寫入/保存文件的一部分被破壞或者文件的格式被破壞時,任何人都可以告訴我如何解決這個問題嗎?原始的XML文件大小爲79KB,但編輯後並保存其成爲78KB ...我的文件越來越短,我不知道爲什麼
require "rexml/text"
require "rexml/document"
include REXML
File.open("c://conf//cad-mtn-config.xml") do |config_file|
# Open the document and edit the file
config = Document.new(config_file)
if testField.to_s.match(/<mtn:ttl>/)
config.root.elements[4].elements[11].elements[1].elements[1].elements[1].elements[8].text="9"
# Write the result to a new file.
formatter = REXML::Formatters::Default.new
File.open("c://mtn-3//mtn-2.2//conf//cad-mtn-config.xml", 'w') do |result|
formatter.write(config, result)
end
end
end
REXML從您的xml文件中剝離不必要的空格,使其更小。 – Yossi
如果不知道文件正在發生什麼變化,很難給出正確的答案。而不是比較尺寸,你可以比較內容?也許與[FC](https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/fc.mspx?mfr=true)命令,因爲它看起來像你在Windows上?如果'FC/w'('compress white space')選項顯示沒有差異,那麼@ yossi的評論就是解釋。 –