Отредактируйте docx с помощью nokogiri и rubyzip

Здесь я использую rubyzip и nokogiri для изменения файла .docx.

RubyZip -> Unzip .docx file
Nokogiri -> Parse and change in content of the body of word/document.xml

Поскольку я написал пример кода чуть ниже, код изменил файл, но другие файлы были нарушены. Другими словами, обновленный файл не открывается, что свидетельствует об ошибке текстового процессора. Как я могу решить эту проблему?

require 'zip/zipfilesystem'
require 'nokogiri'
zip = Zip::ZipFile.open("SecurityForms.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 = "FinalStatement"
zip.get_output_stream("word/document.xml") {|f| f << xml.to_s}
zip.close
5
задан halfer 26 January 2018 в 23:58
поделиться