JAVA解析XML的四种方式优缺点对比

常见JAVA解析XML的四种方式优缺点对比
一、DOM(Document Object Model)解析
优点:
1)允许应用程序对数据和结构做出更改。
2)访问是双向的,可以在任何时候再树中上、下导航获取、操作任意部分的数据。
缺点:
解析XML文档的需要加载整个文档来构造层次结构,消耗内存资源大。
应用范围:
遍历能力强,常应用于XML文档需要频繁改变的服务中。

Java使用步骤:
创建一个DocumentBuilderFactory对象。
创建一个DocumentBuilder对象。
通过DocumentBuilder的parse方法加载XML到当前工程目录下。
通过getElementsByTagName方法获取所有XML所有节点的集合。
遍历所有节点。
通过item方法获取某个节点的属性。
通过getNodeName和getNodeValue方法获取属性名和属性值。
通过getChildNodes方法获取子节点,并遍历所有子节点。
通过getNodeName和getTextContent方法获取子节点名称和子节点值。

二. SAX(Simple API for XML)解析
优点:
1)不需要等待所有的数据被处理,解析就可以开始。
2)只在读取数据时检查数据,不需要保存在内存中。
3) 可以在某一个条件满足时停止解析,不必要解析整个文档。
4) 效率和性能较高,能解析大于系统内存的文档。
缺点:
1)解析逻辑复杂,需要应用层自己负责逻辑处理,文档越复杂程序越复杂。
2)单向导航,无法定位文档层次,很难同时同时访问同一文档的不同部分数据,不支持XPath.

解析步骤:
获取一个SAXParserFactory的实例。
通过factory获取SAXParser实例。
创建一个handler对象。
通过parser的parse()方法来解析XML。

三、JDOM解析(需要引入jdom.jar包)
特征:
1、仅使用具体类,而不使用接口。
2、API大量使用了Collections类。
步骤:
1.创建一个SAXBuilder的对象
2.创建一个输入流,将xml文件加载到输入流中
3.通过saxBuilder的build方法,将输入流加载到saxBuilder中
4.通过document对象获取xml文件的根节点
5.获取根节点下的子节点的List集合。

四、 DOM4J(Document Object Model for Java)解析(需要引入dom4j-1.6.1.jar)
优点:

性能很好
大量使用Java集合类,开发简便,同时也提供了一些提高性能的代替方法。
支持XPath。
缺点:
API比较复杂。
步骤:
1.创建SAXReader的对象reader
2.通过reader对象的read()方法加载books.xml文件,获取document对象
3.通过document对象获取根节点bookstore
4.通过element对象的elementIterator获取迭代器
5.遍历迭代器,获取根节点中的信息
6.获取book的属性名和属性值
7.通过book对象的elementIterator获取节点元素迭代器
8.遍历迭代器,获取子节点中的信息
9.获取节点名和节点值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值