我如何解析word文档“.doc”,“.docx”来使用golang获取所有文本?
iqxoj9l91#
你可以从这些项目中得到一些启发:https://github.com/nguyenthenguyen/docxhttps://github.com/opencontrol/doc-template基本上,DOCX是一个包含XMLs的Zip文件。所有文本都在document.xml里面这两个项目所做的都是删除所有XML标记,只保留文本完整。你应该看看这种方法是否也适合你。
document.xml
myzjeezk2#
1.使用任意Go zip包解压缩docx文件1.从word/document.xml解析文本1.如果在word/文件夹中有任何其他docx文件,则对每个文件递归地重复步骤1和2
docx
word/document.xml
word/
如前所述,docx文件基本上是一个zip存档,其中包含一堆xml文件。
zip
xml
word/document.xml
但是...但不幸的是,在某些情况下,并非所有文本都存在于该文件中。例如,如果文档有另一个嵌入的docx文件(或任何其他格式),它很可能作为一个单独的文件存在于word文件夹中(在document.xml旁边)。如果是这种情况,您需要解包每个docx并解析它们自己的document.xml。有关详细信息,您可以查看AltChunk OpenXML类以及任何其他相关信息。
word
AltChunk
2条答案
按热度按时间iqxoj9l91#
你可以从这些项目中得到一些启发:
https://github.com/nguyenthenguyen/docx
https://github.com/opencontrol/doc-template
基本上,DOCX是一个包含XMLs的Zip文件。所有文本都在
document.xml
里面这两个项目所做的都是删除所有XML标记,只保留文本完整。你应该看看这种方法是否也适合你。
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类以及任何其他相关信息。