Parsers

Parsers

内部 API — 本页中的类不属于公共 API,也未从顶层导出 aspose.words_foss 包。它们在文档转换流水线中内部使用。大多数开发者应使用 LdmMarkdownWriter/LdmPdfWriter 类和 Document.text 属性来代替。参见 核心管理 获取公共 API。这些类是实现细节,可能会在未通知的情况下更改。

Aspose.Words FOSS for Python 包含用于从 DOCX 内部提取结构化数据的专用解析器。NumberingParser 负责处理列表编号定义,StyleParser 提取文档样式。


编号解析器

NumberingParser 从 DOCX 包中读取编号定义,并通过查询 API 公开它们。使用 parse_numbering_part() 加载编号 XML,然后使用辅助方法查询列表属性。

方法描述
NumberingParser.parse_numbering_part()解析 DOCX 编号元素
NumberingParser.get_list_info()通过 ID 获取特定列表的信息
NumberingParser.get_level_info()获取给定深度的列表级别详细信息
NumberingParser.is_ordered_list()检查列表级别是有序还是无序
NumberingParser.get_start_value()获取列表级别的起始编号
NumberingParser.get_delimiter()获取列表级别的分隔符字符串

样式解析器

StyleParser 将样式名称解析为结构化的 ParsedStyle 对象。它根据 DOCX 样式名称识别标题、块引用、代码块和列表段落。

方法描述
StyleParser.parse()将样式名称解析为 ParsedStyle 对象
StyleParser.get_style_chain()解析一系列样式名称以获取继承的样式
StyleParser.is_setext_heading()检查样式是否为 Setext 风格的标题
StyleParser.extract_all_styles()从逗号分隔的链中提取单个样式名称

编号数据模型

解析后的编号数据存储在结构化对象中:

类描述
NumberingInfo使用 num_id、abstract_num_id 和 levels 的编号定义
NumberingLevel使用 format、start 和 text 属性的层级定义
ListInfo关于特定列表实例的信息
ListLevelInfo特定层级的格式化细节

技巧与最佳实践

  • 在加载文档后调用一次 parse_numbering_part(),以填充所有列表定义
  • 使用 is_ordered_list() 来区分编号列表和项目符号列表
  • 使用 get_style_chain() 在一次调用中解析继承的样式链
  • 编号和样式解析器在文档转换管道内部使用

常见问题

问题原因修复
空的编号定义文档中没有列表在访问属性之前检查 get_list_info() 的返回值
缺少样式未识别的样式名称使用已知样式名称的 parse()
错误的列表级别错误的级别参数列表级别是从零开始索引的

API Reference 概述

类 / 方法描述
NumberingParser.parse_numbering_part()解析 DOCX 编号定义
NumberingParser.get_list_info()按 ID 查询列表信息
NumberingParser.is_ordered_list()检查列表层级是否有序
StyleParser.parse()将样式名称解析为结构化信息
StyleParser.get_style_chain()解析继承样式名称链
NumberingInfo编号定义数据模型
NumberingLevel带有格式和起始值的层级定义

另请参阅

 中文