大荟萃

SAX解析:
   解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺序解析 

文档的过程中,SAX会判断当前读到的字符是否合法XML语法中的某部分,如果符合就会触发事  

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

接口。
  startDocument()    endDocument()  startElement()  endElement() characters()
优点: 
边扫描边解析.随时都可以停止。就不需要把文件全部读取后再解析,性能上有比较大的提升。

适合大型的文件的处理。
缺点:
操作相对比较复杂,  “添加内容、删除内容和修改内容”.则是比较麻烦的事情。
  
DOM解析:
  会将XML文件的所有内容读取到内存中,然后允许您使用DOM API遍历XML树形结构、检索所需的

数据。  用DOM操作XML的代码看起来比较直观,并且,在某些方面比基于SAX的实现更加简单。
  优点:操作比较简单、方便,可以比较容易的修改文件内部的东西。
 缺点:首先得把文件全部读取到内存,中间不能停止,大型的XML文件的话,内存的消耗比较大
PULL 解析
与 SAX 解析器相似. 使用parser.next()可以进入下一个元素并触发相应事件。事件将作为数值

代码被发送,因此可以使用一个switch对感兴趣的事件进行处理。当元素开始解析时,调用

parser.nextText()方法可以获取下一个Text类型元素的值。

json 和xml:
JSON 解析在编程上简单得多.它要增加内存消耗,在处理之前整体读取数据流并进行存储
XML 方法更快、内存受限更小 — 但是以增加复杂性为代价。

猜你喜欢

转载自sunjunliangsunjun.iteye.com/blog/1676671
今日推荐