如何将 xml 转换成 docx?
How to convert xml to docx?
我正在使用 meteor 开发一个应用程序,需要替换 docx 文档中的特定单词。我找到了一种将 docx 文件转换为 xml 的方法,我需要进行的替换发生在 xml 文件中。
问题是,替换xml中的那些词后如何恢复docx文档?
这在很大程度上取决于您用来表示数据的 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
-文件夹)的引用,header/footer-information 和其他一切。
docx 使用的 XML-方言是:来自 Microsoft 的 Wordprocessing XML (WML)。 XML-方言(根据我的经验)相对复杂且难以正确格式化。
如果您的 XML-文件已经是 WML 格式,那么万岁,您就快完成了。您唯一需要做的就是将 document.xml
(或您已编辑的其他资源文件)打包回 zip 容器,或者从提取和处理的容器中创建一个新容器。如果您这样做了,请不要忘记将 .zip
重命名回 .docx
。
如果您有另一个方言的 XML 文件(例如 docbook;TEI;DITA),那么您必须编写一个从该方言到文字处理的转换器 XML,以创建一个document.xml
和其他资源文件。然后把它打包回去,就像我上面描述的那样。据我所知,没有那种现成的开源转换器。
您可以通过 运行 命令执行此操作 zip -r new-doc-file-name.docx *
您必须位于包含所有 xml 文件和所需文件夹的文件夹中。
我正在使用 meteor 开发一个应用程序,需要替换 docx 文档中的特定单词。我找到了一种将 docx 文件转换为 xml 的方法,我需要进行的替换发生在 xml 文件中。
问题是,替换xml中的那些词后如何恢复docx文档?
这在很大程度上取决于您用来表示数据的 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
-文件夹)的引用,header/footer-information 和其他一切。
docx 使用的 XML-方言是:来自 Microsoft 的 Wordprocessing XML (WML)。 XML-方言(根据我的经验)相对复杂且难以正确格式化。
如果您的 XML-文件已经是 WML 格式,那么万岁,您就快完成了。您唯一需要做的就是将 document.xml
(或您已编辑的其他资源文件)打包回 zip 容器,或者从提取和处理的容器中创建一个新容器。如果您这样做了,请不要忘记将 .zip
重命名回 .docx
。
如果您有另一个方言的 XML 文件(例如 docbook;TEI;DITA),那么您必须编写一个从该方言到文字处理的转换器 XML,以创建一个document.xml
和其他资源文件。然后把它打包回去,就像我上面描述的那样。据我所知,没有那种现成的开源转换器。
您可以通过 运行 命令执行此操作 zip -r new-doc-file-name.docx *
您必须位于包含所有 xml 文件和所需文件夹的文件夹中。