`
流浪鱼
  • 浏览: 1632594 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

解析xml使用dom还是sax

    博客分类:
  • java
 
阅读更多

我们在使用java解析xml时有两种解析方式即DOM或SAX,那么我们如何进行选择了?

 

DOM 采用建立树形结构的方式访问 XML 文档,在访问该XML文档时该文档必须全部加载,而 SAX 采用的事件模型不需要全部加载文档。

DOM 解析器把 XML 文档转化为一个包含其内容的树,并可以对树进行遍历。用 DOM 解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后利用navigation APIs访问所需的树节点来完成任务。可以很容易的添加和修改树中的元素。然而由于使用 DOM 解析器的时候需要处理整个 XML 文档,所以对性能和内存的要求比较高,尤其是遇到很大的 XML 文件的时候。

由于它的遍历能力,DOM 解析器常用于 XML 文档需要频繁的改变 的情况中。

SAX 解析器采用了基于事件的模型,它在解析 XML 文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。SAX 对内存的要求通常会比较低,因为它让开发人员自己来决定所要处理的tag。特别是当开发人员只需要处理文档中所包含的部分数据时,SAX 这种扩展能力得到了更好的体现。但用 SAX 解析器的时候编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics