美文网首页
XML解析:SAX是什么?

XML解析:SAX是什么?

作者: 许彦峰 | 来源:发表于2022-06-29 20:34 被阅读0次

在看cocos2dx rich-text部分关于xml解析的代码时,看到类名带有sax,很是好奇为啥带个这样的后缀。

注意这里和萨克斯没有半毛钱关系

有三种方式可以解析XML文件:DOM、SAX、StAX

解析方式 说明 优点 缺点
DOM 将整个XML文件加载到内存中,并构建出节点树;应用程序可以通过遍历节点树的方式来解析XML文件中的各个节点、属性等信息 方便对XML节点的添加修改等,而且解析也很方便 比较耗费内存,解析速度也不快
SAX
(Simple API for XML)
基于事件的解析,解析器在一次读取XML文件中根据读取的数据产生相应的事件,由应用程序实现相应的事件处理逻辑,即它是一种“推”的解析方式;一边扫描,一边解析 速度快、占用内存少 它需要应用程序自己处理解析器的状态,实现起来会比较麻烦,而且它只支持对XML文件的读取,不支持写入
StAX 不同于SAX的“推”的解析方式,StAX是基于“拉”的解析方式,即应用程序根据自己的需要控制解析器的读取; 继承了SAX解析速度快、占用内存少等优点,同时它好保持了接口简单、编程容易等特点 不支持写XML文件

SAX举例

<?xml version="1.0"?>
<doc>
<para>Hello, world!</para>
</doc>

sax会将xml解析成为这样的一个一个事件去交给handler处理

start document
start element: doc
start element: para
characters: Hello, world!
end element: para
end element: doc
end document

了解以上基础知识后,就可以正式开始review rich-text部分的源代码了。

相关文章

网友评论

      本文标题:XML解析:SAX是什么?

      本文链接:https://www.haomeiwen.com/subject/tnrxbrtx.html