7

我试图拆开一个看起来像这样的word文档:

1.0 列表项
1.1 列表项
1.2 列表项
2.0 列表项

它存储在 docx 中,我正在使用 python-docx 尝试解析它。不幸的是,它在开始时丢失了所有编号。我试图确定每个有序列表项的开始。

python-docx 库还允许我访问样式,但我不知道如何确定样式是否为列表样式。

到目前为止,我一直在搞乱一个函数并检查输出,但标准格式是这样的:

    for p in doc.paragraphs:
        s = p.style
        while s.base_style is not None:
            print s.name
            s = s.base_style
        print s.name

我一直在使用它来尝试搜索自定义样式,但全部以“Normal”结尾,而不是“ListNumber”。

我尝试在文档、段落和运行下搜索样式,但没有运气。我也尝试过搜索 p.text,但如前所述,编号不会持续存在。

4

1 回答 1

5

列表项可以通过多种方式在 XML 中实现。不幸的是,最常见的方法是使用工具栏(而不是使用样式)添加列表项也可能是最复杂的。

最好的办法是开始使用opc-diag查看在 document.xml 中使用的 XML,然后从那里制定策略。

python-docx 的列表处理 API 还没有真正实现,所以如果你想在今天的版本中完成这项工作,你需要在 lxml 级别进行操作。

于 2015-06-01T21:50:44.887 回答