实际上有两个问题需要解决。第一个是按文档顺序遍历文档中的所有块级元素。第二步是按块元素出现的顺序遍历每个块元素中的所有内联元素。
我知道没有确切的对应项来处理内联项,但我希望您可以在paragraph.runs中取得相当大的进展。所有内联内容都将在一个段落内。如果你大部分时间都在那里,只是在获取图片或其他东西时挂断了电话,你可以进入lxml级别,解码一些XML以获得所需的内容。如果你进展顺利,并且仍然热衷于此,如果你在GitHub问题列表上发布了类似“feature:Paragraph.iter_inline_items()”之类的功能请求,我可能会提供一些类似的代码来满足你的需要。
这一要求不时出现,所以我们一定要在某个时候添加它。
注意,块级项(主要是段落和表)可以递归地出现,一般的解决方案需要考虑到这一点。特别是,段落可以(实际上至少必须有一个)出现在表格单元格中。表格也可以出现在表格单元格中。所以理论上它可以变得很深。递归函数/方法是获得所有这些的正确方法。