我正在使用meteor开发应用程序,需要替换docx文档中的特定单词。我发现了一种将docx文件转换为xml的方法,我需要替换xml文件。
问题是,如何在xml中替换这些单词后恢复docx文档?
答案 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文件和所需文件夹的文件夹中。