文档章节

XML之XML解析方法对比总结

monster_nian
 monster_nian
发布于 2016/01/26 14:26
字数 570
阅读 47
收藏 5

1.DOM

DOM的优势主要表现在:易用性强,使用DOM时,将把所有的XML文档信息都存于内存中,并且遍历简单,支持XPath,增强了易用性。
DOM的缺点主要表现在:效率低,解析速度慢,内存占用量过高,对于大文件来说几乎不可能使用。另外效率低还表现在大量的消耗时间,因为使用DOM进行解析时,将为文档的每个element、attribute、processing- instrUCtion和comment都创建一个对象,这样在DOM机制中所运用的大量对象的创建和销毁无疑会影响其效率。

 2. SAX

为解决DOM的问题,出现了SAX。SAX ,事件驱动。当解析器发现元素开始、元素结束、文本、文档的

开始或结束等时,发送事件,程序员编写响应这些事件的代码,保存数据。优点:不用事先调入整个文档,占用资源少;SAX解析器代码比DOM解析器代码小,适于Applet,下载。缺点:不是持久的;事件过后,若没保存数据,那么数据就丢了;无状态性;从事件中只能得到文本,但不知该文本属于哪个元素;使用场合:Applet;只需XML文档的少量内容,很少回头访问;机器内存少

3.JDOM

为减少DOM、SAX的编码量,出现了JDOM;优点:20-80原则,极大减少了代码量。使用场合:要实现的功能

简单,如解析、创建等,但在底层,JDOM还是使用SAX(最常用),DOM

4.DOM4J

DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同

时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用 DOM4J 来读写 XML


前面写了4中关于java解析XML的方法,我们看到,利用以树状结构解析xml的居多,可能便于我们对xml做相应的操作,但是这些方法普遍就是比较消耗资源,对内存有一定的要求!

© 著作权归作者所有

共有 人打赏支持
monster_nian
粉丝 1
博文 12
码字总数 8312
作品 0
兰州
网络数据交换格式

1.Json的讲解 1.1json是什么? •JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。可在不同平台之间进行数据交换。 JSON采用兼容性很高...

android-key
2016/10/08
14
0
Java微信扫码支付

前言:让我用Java写个微信扫码支付,身为小白,网上搜了好多文章,终于找到一个看得明白的,链接。表示人家讲的够详细了,现在自己要是实现一个,我觉得吧,可能入手比较乱。其实后来发现,代...

ioufev
2016/11/07
627
0
使用JS读取XML文件的方法

由于项目上需要解析xml,于是各种百度,然后自己总结了下各个主流浏览器解析xml的方法,下面通过本文给大家详细介绍下使用JS读取XML文件的方法,一起看看吧 由于项目上需要解析xml,于是各种...

码农般的学良
2016/11/26
154
0
web自动化测试之百度经验-HTTP层面的Web Service自动化测试

前言 我们之前在测试web service的时候尝试过多种方法:比如使用SoapUI;使用本地代理类编程等。前者不太方便做自动化,后者是从SOAP协议层面进行测试,数据组织不太方便,测试程序相对复杂,...

疯子阳
2015/10/13
113
0
android xml解析的三种方式

在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX、Pull、Dom解析方式。最近做了一个android版的CSDN阅读器,用到了其中的两种(sax,pull),今天对android解析...

球球
2016/09/24
5
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

咕泡-Factory设计模式笔记

个人感悟: 设计模式都是处理复杂问题的,如果问题本身很简单,使用设计模式反而累赘,增加了开发的复杂性 遇到最简单的情况,直接 new 如果创建对象的过程简单,但是需要匹配不同情况,返回...

职业搬砖20年
17分钟前
0
0
Java中的锁分类

在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类。介绍的内容如下: 公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏...

Funcy1122
25分钟前
0
0
Ansible随机数

想为你的Ansible剧本取一个随机数?还想在接下来的运行中保持系统的等幂性?这里有一个答案。 假如,你要为一大批服务器设置cron任务,却不想让它们同时启动,你可以这样设置分钟数: minute...

大别阿郎
35分钟前
0
0
SpringCloud之服务注册中心Eureka

本系列介绍的配置均基于 Spring Boot 2.0.1.RELEASE 版本和 Spring Cloud Finchley.SR1 服务注册中心 Spring Cloud 已经帮我们实现了服务注册中心,我们只需要很简单的几个步骤就可以完成。 ...

熊小飞呀
今天
9
1
“Comparison method violates ...”异常的再现方法

前提条件:JDK8 代码: import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class Test { public stat......

hunterli
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部