从 XML 转换为 Microsoft Word 文档

Convert from XML to Microsoft Word Doc

我有一批 XML 和 SGML 文档(大约 7000 个)。我想要将它们转换成结构化的 Microsoft Word 文档的东西。我已经在线阅读了 2 天有关如何执行此操作的信息,但比开始时更加困惑。

我看到您可以使用 Open XML SDK 和 C# 通过 Visual Studio 创建它,通过这里的回答:Whosebug answer, which links to this Using XSLT and Open XML SDK。然而,这是7年前的事了。我不确定这是否仍然是最新的,我不知道这绝对是我需要的。

还有我正在转换的文件,标签本身是瑞典语。所以我猜我需要一些东西来阅读并将标签转换为英文,然后将其转换为 Word XML 格式。

我可以用 C# 和 C++ 编写代码,如果需要的话,我可能会想出解决大多数脚本语言的方法,但对从代码创建 word 文档的经验为零。我知道我可能需要制作 DTD 或 XSLT 并可能使用 Word XML(我在过去 2 天了解了这些),并在某些 Visual Studio 项目中使用它。

但是我不知道该怎么做。有人可以引导我朝着正确的方向前进吗?

谢谢

这个话题非常广泛,无法用一个单一的方法真正详细地回答 post...

您在 7 年前找到的信息仍然相关且有效。自 97 年以来的所有版本的 Word 都可以使用该文件格式(2003 年及更早版本需要 "Compatibility Pack",但大多数已更新的机器都将具有该文件格式)。 2007 之后的版本也可以使用 7 年前规定的文件格式,但这不包括 2013/2016 引入的新功能。这可以毫无问题地添加,您只是在旧文档中找不到那些 类,但在 MSDN 和当前的 ECMA 规范中都有。

棘手的部分,乍一看并不明显,是因为 Word 打开 XML 文档实际上是多个 XML 和二进制文件的 ZIP 包,不能直接变形了与其仅依赖于您发现的 SO Q&A 中的 link,您最好直接使用 OPC "flat file" 格式,正如 Eric White 所解释的:http://blogs.msdn.com/b/ericwhite/archive/2008/09/29/the-flat-opc-format.aspx

您使用 XSLT 生成的结果应该是这种格式。需要将其转换为 ZIP 包,以便使用 Open XML SDK(并使用 2.5 版,而不是 7 年前的 2.0 版)对其进行任何进一步的处理。 Eric White 的文章提供了转换信息,这将有所帮助。

这项任务绝对不会是微不足道的,因为 Word 是一个非常复杂的野兽。如果这些文档集有共同点,您可以通过手动 "converting"(部分)Word UI 中的一个来更快地取得所需结果。在 Open XML 生产力工具中保存并查看它,您可以在其中查看基础 Word Open XML(以及生成所需的 Open XML SDK 代码)。这应该可以帮助您 "map" 使用 Word Open XML 标记的原始标记。