从python中的DOCX Word文档中提取表

mgi*_*dal 5 python xpath ms-word docx

我正在尝试在DOCX Word文档中提取表格的内容,而且我是xml/xpath的新手.

from docx import *
document = opendocx('someFile.docx')
tableList = document.xpath('/w:tbl')
Run Code Online (Sandbox Code Playgroud)

这会触发"XPathEvalError:Undefined namespace prefix"错误.我确信这只是开发脚本时第一个期待的.不幸的是,我找不到python-docx的教程.

你能提供一个表格提取的例子吗?

Spe*_*bun 2

经过一番反复研究,我们发现需要一个命名空间才能正常工作。xpath 方法是合适的解决方案,它只需要首先传入文档名称空间。

lxml xpath 方法包含命名空间内容的详细信息。向下查看链接中的页面以传递命名空间字典和其他详细信息。

正如 mgierdal 在上面的评论中所解释的:

tblList = document.xpath('//w:tbl', namespaces=document.nsmap) 就像梦一样。因此,据我了解, w: 是一个简写,必须扩展到完整的命名空间名称,并且其字典由 document.nsmap 提供。