px普贤教程PuXian
普贤教程 › 包参考

xmlstream 包

流式 XML 读写

项值
包名xmlstream
版本0.2.0
可用版本0.1.0 / 0.2.0
入口xmlstream.px
分类数据格式与编解码
文件数 / 行数1 / 235

安装与引入

bash
pxpkg init          # 首次
pxpkg add xmlstream@0.2.0
pxpkg install
px
import xmlstream
所属分类教程:数据格式与编解码

公开接口

函数参数
xr_resetr
xr_posr
xr_is_doner
xr_read_allr
xr_peekr
其余 18 个 def(内部与辅助,可直接调用但不属稳定接口)
函数参数
xw_new
xw_start_documentw
xw_start_elementw, name, attrs
xw_end_elementw, name
xw_write_elementw, name, content
xw_textw, text
xw_commentw, text
xw_write_cdataw, text
xw_write_raww, raw_xml
xw_end_documentw
xw_get_outputw
xw_escape_texts
xw_escape_attrs
_xs_find_froms, ch, start
_xs_find_strs, sub, start
_xs_parse_attrsattr_str
xr_newxml
xr_read_nextr

包内说明(源码头注释)

text
============================================================
普贤生态库:registry/xmlstream — 流式 XML 读写
------------------------------------------------------------
纯函数库,双模式一致。

实现要点:
- 读到末尾先把 _pos 推到 len(xml) 再返回 null ⇒ xr_is_done() 与返回值口径一致。
- CDATA 单独成事件:{type: "cdata", text: ...},内部 ">" 不再误判。
- 空标签名 / 残缺标签返回 {type: "text"} 或 null,不崩。
- 新增 xr_read_all(r) → 一次性取完所有事件、xr_reset(r)、xr_pos(r)、xr_peek(r)。

读事件形态:
{type: "start",  name, attrs, self_closing}
{type: "end",    name}
{type: "pi",     text}
{type: "comment", text}
{type: "cdata",  text}
{type: "text",   text}     # 新增:标签之间的文本
读到文件末尾返回 null。
============================================================