zoukankan      html  css  js  c++  java
  • XML解析

    • SAX解析
    • DOM 解析
    • PULL解析

    SAX解析------- 基于事件的解析器

    原理

      对文档进行顺序扫描,当扫描到 文档的开始与结束元素的开始与结束的位置时,会通知事件处理函数做相应的动作。

    (所谓事件,其实就是一些回调(callback)方法,这些方法(事件)定义在ContentHandler接口。)

    优点

       解析效率高,占用内存少,适合在Android设备上使用

    缺点: 

     1.使用比较麻烦, 需要应用程序自己处理TAG逻辑(维护父、子关系)

     2.单向访问,很难同时访问同一个文档中的不同数据,不支持XPath????

    DOM 解析---------基于文档驱动的解析器

    原理

      加载整个文档并构成DOM树之后开始工作,DOM树在内存中是持久的,所以可以在程序中对数据和结构做更改

    优点

      简单,直观适合xml文件比较小时(因为毕竟是在内存中操作)

    缺点

      需要加载整个XML文档来构造层次结构,消耗资源大,不适用于大文档

    (这个在内存中的文档树将是文档实际大小的几倍。这样做的好处是结构清除、操作方便,而带来的麻烦就是极其耗费系统资源。)

     PULL解析----------同SAX,基于事件的模式------第三方开源

    原理

     不需要像SAX那样监听元素的结束,其实是在开始处就做了大量的处理,PULL解析中需要自己获取产生的事件并作出处理而不是像SAx那样由处理器触发事件。

    当解析到一个文档结束时会自动生成EndDocument事件

    优点

    解析速度快,简单易用,小巧轻便

     

    大神博客:http://blog.csdn.net/ithomer/article/details/7521668

  • 相关阅读:
    HDU 1114 Piggy-Bank
    HDU 2955 Robberies
    NTOJ 290 动物统计(加强版)
    POJ 3624 Charm Bracelet
    HDU 2602 Bone Collector
    POJ 1523 SPF(无向图割顶)
    HDU 5311 Hidden String
    HDU 1421 搬寝室
    HDU 1058 Humble Numbers
    POJ 3259 Wormholes(spfa判负环)
  • 原文地址:https://www.cnblogs.com/fanfusuzi/p/6843134.html
Copyright © 2011-2022 走看看