xml解析之dom解析以及两种方式的特点

来源:互联网 发布:窗口编程 编辑:程序博客网 时间:2024/05/22 10:23

之前简单介绍了利用SAX解析方式解析xml文档,然后在总结一下另一种解析xml文档的方式——dom解析

我们也同样准备一个xml文档

<books>     <book>        <title>java从入门到放弃</title>        <price>10元</price>        <author>张三</author>    </book>    <book>        <title>C语言从入门到放弃</title>        <price>12元</price>  <span style="white-space:pre">  </span><author>李四</author>  </book>  </books>  

对于dom解析的过程:在解析xml文档时会在内存中创建一个document类型的dom对象,代表着整个文档,接着读取books会在内存中创建一个element对象,并且在dom对象中保存了对books的引用,表明books是dom的子节点,然后每一次读到一个子节点的时候都会像之前一样创建一个element对象以此类推(标签体和属性也可以看做是element的一个 子节点),这样读取完整个xml文档,就在内存当中创建一个dom树,如图所示:


从前面的分析我们可以看到dom解析的优点是:十分的便于进行增删改查的操作,只需解析一次拿到dom对象后可以重复的使用,减少解析的次数

缺点是:解析的过程比较慢,需要将整个文档都解析完成后才能进行操作,同时将整个文档都加载到内存中时非常的消耗内存。

而SAX解析的优点就是:不需要整个文档都加载到内存中时才进行操作,当解析到某一个地方时自动的触发对相应的方法,文档解析的效率较高,同时对内存的消耗很少,无论多大的xml文档都可以进行解析。

缺点:每一次解析只能处理一次,在想对文档进行处理时还要再扫描一次。

目前使用较多的还是SAX解析,效率较高。毕竟你想修改xml文档时自己手动的去修改就行了,干嘛要使用程序去修改呢。



0 0
原创粉丝点击