永发信息网

java的sax解析和pull解析的区别有哪些

答案:2  悬赏:20  手机版
解决时间 2021-02-12 04:41
java的sax解析和pull解析的区别有哪些
最佳答案
两者同属于解析xml文件,主流的解析大致有三种: dom、sax、pull;
1,dom解析:
将整个xml文件装载到内存中,如果内存不足就挂掉,小文件dom比较占优势。
使用场合:一旦解析了文档还需多次访问这些数据;硬件资源充足(内存、CPU)。
2,sax解析:
不用事先调入整个文档,占用资源少;
缺点:不是持久的;事件过后,若没保存数据,那么数据就丢了。
3,pull解析,解决了dom和sax遗留下问题。
全部回答
SAX是一种基于“推”的解析方式,这种解析方法速度快、占用内存少,但是它需要应用程序自己处理解析器的状态,实现起来会比较麻烦,而且它只支持对XML文件的读取,不支持写入。“推”到底是怎么回事呢?SAX解析器的工作方式是自动将事件推入注册的事件处理器进行处理,因此我们不能控制事件的处理主动结束。
PULL则是一种基于“拉”的解析方式,即应用程序根据自己的需要控制解析器的读取。这种方式继承了SAX解析速度快、占用内存少等优点,同时它也保持了接口简单、编程容易等特点。“拉”又是怎么回事呢?PULL解析器的工作方式为允许应用程序代码主动从解析器中获取事件,正因为是主动获取事件,因此可以在满足了需要的条件后不再获取事件,结束解析。
使用SAX解析,在解析器解析过程中通过回调把TAB/VALUE值等传给我们,我们可以直接拿到这些值进行比较、处理。而PULL的原理是它只告诉我们一个TAG开始或者结束了,至于TAG/VALUE的值是什么需要我们自己去向解析器问,所以叫做PULL(拉),而SAX看起来是PUSH(推)给我们的。
其实再从我们之前的例子中也可以看出SAX与PULL之间的区别,PULL是使用一个循环结构,循环体中我们可以随时跳出(break),而SAX不是,SAX是只要开始解析了,就必须解析完成。所以PULL的使用比SAX会更加灵活,在Android的开发中,更推荐使用PULL解析XML。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
煤气泄露有多大的危险?
胜丰复印怎么去啊,我要去那办事
全民主公张辽转黄将流程
鸿达花卉这个地址在什么地方,我要处理点事
蓝天照相馆复印社地址在什么地方,想过去办事
win7 64位怎么查看COM端口号 设备管理器里面
王某发现吊装预制构件欲脱落,拒绝继续作业并
周记家电城在什么地方啊,我要过去处理事情
盖茨说:“微软离倒闭只有一百天”。这句话的
为啥上海没有93号汽油,只有92和95
鸽子一词在康熙字典里是多少笔划?
3.1÷1.25÷o.8怎么算
德宝好不好
前锋刻字社地址有知道的么?有点事想过去
永轩铝业在哪里啊,我有事要去这个地方
推荐资讯
补写出下列名句名篇中的空缺部分。(每个空格
我在新郑富士康辞职了,然后进了恒博物业做了
有三个连续奇数,已知它们的平方和等于251,求
盈宇网吧地址好找么,我有些事要过去
烟感报故障拆除后重新注册还是报故障怎么回事
传奇霸业进神威为什么攻击力要求不一样
月末31号转账银行是否能及时转出,会延迟到账
金融学要背吗??是不是比工科多很多要背的
归元寺第244智慧海尊者的签解
AgCl到底溶于稀氨水还是浓氨水?
南京南站怎么去江宁中行南京培训中心
赤岗民邦快递有限公司即现在的首达速运有限公
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?