Skip to main content

Module parser

Module parser 

Source
Expand description

XML 解析与序列化基础。

我们的策略是 用 serde 派生(OOXML 命名空间混乱、属性多),而是用 quick-xml 直接走 SAX 风格流式 API,专注读写一致性。

本文件提供:

  • 字符串 ↔ 数字 / 布尔 / 枚举 的转换;
  • 属性读取的便利函数;
  • XML 转义 / 反转义;
  • 简易的“开始/结束元素“过滤器。

§实现说明

自 v0.5.0 起改为 re-export ooxml_core::oxml::parser 的内容。 ooxml-core 版本的 escape 函数委托给 ooxml_core::xml_escape, 切断了 content_types → rels 的循环依赖。

Functions§

attrs_of
BytesStart 提取属性集合(值自动反转义)。
collect_inner_text
收集一个 XML Reader 中当前开始标签到对应结束标签之间的内容到字符串。 用于 <a:rPr>...</a:rPr> 这种“完整子元素“提取。
emu_opt
写一个可选 EMU 值(不写就不输出)。
emu_str
写一个 EMU 值(i64 → 十进制字符串)。
escape
XML 字符串属性转义。
get_attr
取出某个属性,缺失返回 None。
get_attr_or
取出某个属性,缺失时用默认值。
i64_to_str
把 i64 序列化为十进制字符串。
parse_attr
任意 FromStr 类型的属性解析:缺失返回 None。
parse_attr_or
任意 FromStr 类型的属性解析:缺失时使用默认值。
parse_bool
布尔解析:true/1/on 视为真;其余视为假(0/false/off/空)。
parse_f64
f64 解析(解析失败时返回 None 而不是 NaN)。
parse_i64
i64 解析。
parse_u8
u8 解析。
parse_u16
u16 解析。
parse_u32
u32 解析。
render_attrs
把字符串集合渲染为 "k1=\"v1\" k2=\"v2\""(不带前后尖括号)。
render_empty
render_start 的自闭合版本。
render_end
写一个闭标签。
render_start
把一个 BytesStart 渲染为完整的开标签(仅写 start 事件,不写子节点)。
unescape
XML 字符串反转义(解析时用)。

Type Aliases§

AttrMap
元素属性集合:本地名(去前缀)→ 字符串。 使用 Vec<u8> 拥有键的所有权,避免借用迭代器临时值。