使用golang解析.doc和.docx获取所有文本?

u2nhd7ah  于 2023-06-19  发布在  Go
关注(0)|答案(2)|浏览(402)

我如何解析word文档“.doc”,“.docx”来使用golang获取所有文本?

iqxoj9l9

iqxoj9l91#

你可以从这些项目中得到一些启发:
https://github.com/nguyenthenguyen/docx
https://github.com/opencontrol/doc-template
基本上,DOCX是一个包含XMLs的Zip文件。所有文本都在document.xml里面
这两个项目所做的都是删除所有XML标记,只保留文本完整。你应该看看这种方法是否也适合你。

myzjeezk

myzjeezk2#

TL; DR

1.使用任意Go zip包解压缩docx文件
1.从‌word/document.xml解析文本
1.如果在word/文件夹中有任何其他docx文件,则对每个文件递归地重复步骤1和2

大多数情况下...

如前所述,docx文件基本上是一个zip存档,其中包含一堆xml文件。

    • 在大多数情况下**原始文件中的所有文本都存在于word/document.xml中。您可以使用Go语言的标准xml包来解析其中的文本。如果需要不同标记类型的信息,还可以查看OpenXML文档。

但是...
但不幸的是,在某些情况下,并非所有文本都存在于该文件中
例如,如果文档有另一个嵌入的docx文件(或任何其他格式),它很可能作为一个单独的文件存在于word文件夹中(在document.xml旁边)。
如果是这种情况,您需要解包每个docx并解析它们自己的document.xml
有关详细信息,您可以查看AltChunk OpenXML类以及任何其他相关信息。

相关问题