如何将xml转换为docx?

时间:2015-07-22 09:03:06

标签: xml meteor docx

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

问题是,如何在xml中替换这些单词后恢复docx文档?

2 个答案:

答案 0 :(得分:2)

这在很大程度上取决于您用来表示数据的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容器,或者从提取和处理的容器中创建一个新容器。如果您这样做,请不要忘记将.zip重命名为.docx

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

答案 1 :(得分:0)

您可以通过运行命令zip -r new-doc-file-name.docx *来做到这一点,您必须位于包含所有xml文件和所需文件夹的文件夹中。