检索样式为“段落列表”的段落对象的编号

时间:2019-03-08 13:11:14

标签: python python-docx

我认为标题几乎可以自我解释。在段落为“ ListParagraph”类型的情况下,下面的代码省略了编号:

import docx
doc = docx.Document('test.docx')
for para in doc.paragraphs:
    print(para.text)

要推断编号,我了解的是必须去到document.xml并将其与numbering.xml进行互相关。因此,使用python-docx我们可以说

numId_val = para._element.pPr.numPr.numId.val

使您可以访问编号样式ID。然后拨打电话

para._element.pPr.numPr.ilvl.val

使您可以访问从0开始的编号级别。

然后,原则上可以基于numId_vals和ilvls的顺序构造一种递归算法来推断编号。

但是我发现,如果作者自定义她的列表开头(例如十进制数字,而不仅仅是十进制整数),这将无法提取正确的编号。

是否有正确且更强大的解决方案?

非常感谢您的帮助-这已经使我的大脑消沉了一段时间。

0 个答案:

没有答案