如何将 xml 转换为 docx?

Naj*_*oua 2 xml docx meteor

我正在使用meteor 开发一个应用程序,需要替换docx 文档中的特定单词。我找到了一种将 docx 文件转换为 xml 的方法,我需要进行的替换发生在 xml 文件中。

问题是,替换xml中的那些词后,如何恢复docx-document?

Mat*_*nde 5

这在很大程度上取决于您用来表示数据的 XML 方言。docx 格式本身只是 xml 和资源文件的集合,打包在一个 zip 容器中。如果您将文件从 重命名file.docxfile.zip,则可以提取它并亲自查看。

让我们快速浏览一下容器中的文件夹结构:

docx | + _rels (...) + docProps (...) + word | + media (...) | + _rels (...) | | - document.xml | - footnotes.xml | - styles.xml | - footer(...).xml | - header(...).xml - [ContentTypes].xml

最重要的文件是document.xml。这是存储的整个文本和文档结构,以及对脚注(在 中定义footnotes.xml)、样式(style.xml)和资源(-文件media夹)、页眉/页脚信息和其他所有内容的引用。

docx 使用的 XML 方言是:Microsoft 的Wordprocessing XML (WML)。这种 XML 方言(根据我的经验)相对复杂且难以正确格式化。

如果您的 XML 文件已经在 WML 中,那么万岁,您就快完成了。您唯一需要做的就是将您的document.xml(或您编辑过的其他资源文件)打包回 zip 容器,或者从提取和处理的容器中创建一个新容器。如果您这样做了,请不要忘记将.zipback重命名为.docx

如果您有另一种方言的 XML 文件(例如 docbook;TEI;DITA),那么您必须编写一个从该方言到 Wordprocessing XML 的转换器,以创建 adocument.xml和其他资源文件。然后把它打包回去,就像我上面描述的那样。据我所知,没有那种现成的开源转换器。