SAX是一种轻量、快速、低内存占用的事件驱动XML解析方式,通过startElement、characters、endElement等回调方法边读边处理,适用于大文件或内存受限场景,无需加载整棵树。

SAX(Simple API for XML)是一种轻量、快速、低内存占用的XML解析方式,核心是事件驱动模型:它不把整个XML文档加载进内存,而是边读边触发回调,像“听广播”一样——遇到开始标签、结束标签、文本内容等就立刻通知你,由你决定怎么处理。
它怎么工作:边读边“喊话”
SAX解析器从XML文件开头逐字扫描,一旦识别出结构特征,就调用你预先写好的方法。比如:
-
startElement():读到
<user id="101"></user>时触发,你能拿到标签名、属性值(如id="101") -
characters():读到
<name>张三</name>中的“张三”时触发,注意要截取有效字符段(ch[start]...ch[start+length-1]) -
endElement():读到
时触发,表示一个元素完整闭合,适合做对象封装或存入集合 - startDocument() / endDocument():分别在文档最开头和结尾触发,适合初始化或收尾操作
为什么选SAX而不是DOM
关键看场景需求:
标签: android stream xml解析 内存占用 为什么
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~