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>拥有键的所有权,避免借用迭代器临时值。