我正在使用meteor 开发一个应用程序,需要替换docx 文档中的特定单词。我找到了一种将 docx 文件转换为 xml 的方法,我需要进行的替换发生在 xml 文件中。
问题是,替换xml中的那些词后,如何恢复docx-document?
这在很大程度上取决于您用来表示数据的 XML 方言。docx 格式本身只是 xml 和资源文件的集合,打包在一个 zip 容器中。如果您将文件从 重命名file.docx为file.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和其他资源文件。然后把它打包回去,就像我上面描述的那样。据我所知,没有那种现成的开源转换器。