Ich verwende eine Kombination aus Rubyzip und Nokogiri, um eine .docx-Datei zu bearbeiten. Ich benutze Rubyzip, um die .docx Datei zu entpacken und nokogiri zu verwenden, um den Text der Datei word/document.xml zu analysieren und zu ändern, aber immer wenn ich rubyzip schließe, korrumpiert er die Datei und ich kann sie nicht öffnen oder repariere es. Ich entzippe die .docx-Datei auf dem Desktop und überprüfe die Datei "word/document.xml" und der Inhalt wird auf das aktualisiert, was ich geändert habe, aber alle anderen Dateien sind durcheinander. Könnte mir jemand bei diesem Problem helfen? Hier ist mein Code:So bearbeiten Sie docx mit nokogiri und rubyzip
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
Hallo Delvin, ich habe das gleiche Problem, aber ich kann es nicht lösen, wie Eric vorgeschlagen hat. Wie kann ich dieses Problem beheben? Danke – Rubyist