zoukankan      html  css  js  c++  java
  • Xml解析方法 Dom,Sax,Pull

    参考:

    http://blog.csdn.net/kukulongzai_123/article/details/7058008

    Sax定义

             SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于android等移动设备

             作为接口,sax是事件驱动型xml解析的一个标准接口

    》Sax特点

            1. 解析效率高,占用内存少

            2.可以随时停止解析

            3.不能载入整个文档到内存

            4.不能写入xml

            5.SAX解析xml文件采用的是事件驱动

            ---sax并不需要解析完 整个文档,在按内容顺序解析文档的过程中,sax会判断当前读到的字符是否合法xml语法中的某部分,如果符合就会触发事件

    DOM简介

            dom全称Document Object Model ,为xml文档的已解析版本定义了一组接口。解析器读入整个文档,然后构建一个主流内存的树结构,

             然后代码就可以使用dom接口来操作这个树结构

    》DOM的特点

             >优点

                      1.整个文档树在内存中,便于操作;支持删除、修改、重新排列等多种功能

                      2.通过树形结构存取xml文档

                      3.可以在树的某个节点上向前或向后移动

               >缺点

                      1.将整个文档调入内存(包括无用的节点),浪费时间和空间

                >适用场合

                      一旦解析了文档还需多次访问这些数据;硬件资源充足(内存,cpu)

    》pull解析器简介

            1.pull解析器是android内置的解析器,解析原理与sax类似

            2.pull它提供了类似的事件。

                  如:开始元素和结束元素事件,使用parse.next()可以进入下一个元素并触发相应的事件,事件将作为数值代码被发送

                          因此可以使用一个switch对感兴趣的事件进行处理。当元素开始解析时,调用parser.nextText()方法获取下一个Text类型节点的值 

    》pull与sax的不同之处

              1.pull读取xml文件后触发相应的事件调用方法返回的是数字。

              2.pull可以在程序中控制,想解析到哪里就可以停止到哪里

              3.Android中更推荐使用pull解析

  • 相关阅读:
    【SpringCloud】工程分类概况
    【Spring Alibaba】Sentinel/Nacos/RocketMQ/Seata/
    【Eureka】服务架构类知识点
    求车速
    尼科彻斯定理
    Tom数
    弟弟的作业
    汽水瓶
    POJ-2533-Longest Ordered Subsequence(LIS模板)
    HDU-1331-Function Run Fun(动态规划3)
  • 原文地址:https://www.cnblogs.com/wjw334/p/3634362.html
Copyright © 2011-2022 走看看