代码之家  ›  专栏  ›  技术社区  ›  Mikhail

处理Word文档的最佳方法[关闭]

  •  9
  • Mikhail  · 技术社区  · 14 年前

    我接收的word文档具有与其中的数据对应的指定格式。例如,所有标题的格式都完全相同(Times New Roman字体14粗体)。

    将这些MS Word文档(.doc或.docx)处理为xml文档的最佳方法是什么?语言不是问题(如果必须的话,我将使用Lisp/Boost.Spirit!).

    5 回复  |  直到 8 年前
        1
  •  9
  •   Etienne    10 年前

    看看 python-docx 图书馆。

        2
  •  2
  •   David Claridge    14 年前

    所以我认为您是说文档的结构是以格式编码的,您希望生成捕获该结构的XML文件,同时将内容保持为纯文本?

    如果是这样,您将需要解析文档,并构建一个可以处理的数据结构,然后将其转储为XML。

    对于解析,有几个选项。微软 have published 它们的binary.doc格式的规范,其读取对于为其编写解析器至关重要。在.docx的例子中,您比较幸运,因为它已经是XML格式的,所以您可以使用任何XML解析库读取文件,然后在结果树中搜索您感兴趣的数据。XML解析器几乎可以用于任何语言,一个容易使用的方法是 MiniDom 对于Python。

    为了生成输出XML,同样地,XML库的对象表示似乎也是一种方法,例如MiniDom也这样做。

    如果您不想处理编写自己的.doc解析器,则可以通过一个转换器来运行文档,该转换器首先生成更易于访问的格式,例如使用Word本身将.doc文件转换为.docx,或者从docs生成RDFS的工具,或者您可以使用现有的单词解析器,如OpenOffice中的一个。

        3
  •  2
  •   Mikhail    13 年前

    在VBA中使用非常低效的条件搜索将文档逐字复制到第二个文档中。第二个文档随后以.xml扩展名保存。完成了任务,但很难看。

        4
  •  0
  •   n002213f    14 年前

    您也可以尝试基于Java Apache POI - HWPF . 它支持文本 extraction . 然后必须创建自己的XML文档, Caster XML Xstream 在这个问题上能帮到你。

        5
  •  0
  •   JasonPlutext    14 年前

    这真的取决于你到底想做什么。

    最简单的方法是将文档保存为扁平的OPC XML(即“另存为…”XML),然后应用XSLT。

    这种方法很简单,因为它将整个docx作为单个XML文件提供给您,所以您不必解压缩它。

    如果您的需求更为复杂,例如,分析格式或样式,或使用超链接执行某些操作,那么对象模型(如docx4j(Java)或Open XML SDK(C#)无疑还有其他模型)可能会有所帮助。