我正在使用 rubyzip 和 nokogiri 的组合来编辑 .docx 文件。我正在使用 rubyzip 解压缩 .docx 文件,然后使用 nokogiri 解析和更改 word/document.xml 文件的正文,但是每次我最后关闭 rubyzip 时它都会损坏文件并且我无法打开它或修复它。我在桌面上解压缩 .docx 文件并检查 word/document.xml 文件,内容已更新为我更改的内容,但所有其他文件都搞砸了。有人可以帮我解决这个问题吗?这是我的代码:
require 'rubygems'
require 'zip/zip'
require 'nokogiri'
zip = Zip::ZipFile.open("test.docx")
doc = zip.find_entry("word/document.xml")
xml = Nokogiri::XML.parse(doc.get_input_stream)
wt = xml.root.xpath("//w:t", {"w" => "http://schemas.openxmlformats.org/wordprocessingml/2006/main"}).first
wt.content = "New Text"
zip.get_output_stream("word/document.xml") {|f| f << xml.to_s}
zip.close