现在解析XML的主流的方法有DOM、SAX、JDOM和DOM4J

1.DOM

【优点】
      ①应用程序可以其对数据和结构进行更改。
      ②访问是双向的,可以在任何时候在树中上下导航,获取和操作任意部分的数据。
【缺点】
      ①通常需要加载整个XML文档来构造层次结构,消耗大。

2. SAX

【优势】
     ①不需要等所有数据都被处理完毕,就能立即开始分析。
     ②只在读取数据时检查数据,不需要保存在内存中。
     ③能在某个条件得到满足的时候停止解析,不用解析整个文档,提高效率。
     ④效率和性能较高,能解析大于系统内存的文档。

【缺点】
     ①需要应用程序自己负责TAG的处理逻辑,文档越复杂程序就越复杂。
     ②单向导航,无法定位文档层次,难以同时访问同一文档中的不同部分数据,并且不支持XPath。

3. JDOM

【优点】
     ①使用的是具体类而不是接口,简化了DOM的API。
     ②大量使用了Java集合类,方便了Java开发人员。

【缺点】
     ①没有较好的灵活性。
     ②性能比较差。

4. DOM4J

【优点】
     ①大量使用了Java集合类,方便Java开发人员,同时提供一些提高性能的替代方法。
     ②支持XPath。
     ③有很好的性能。

【缺点】
     ①大量使用了接口,API较为复杂。

xml几种解析方式的优缺点相关推荐

  1. xml的两种解析方式:sax,dom4j

    两种解析方式的优缺点:     sax解析:优点:不需要读取整个文件,并且将其储存在内从中,不耗费内存资源,才用触发监听的方式,文件读到哪里触发相应方法.         缺点:不能反复调用,每次解析 ...

  2. php xml 四种,xml中常见的四种解析方式是什么?

    xml解析方式有:1.DOM解析方法,可以对xml文档进行修改操作:2.SAX解析方法,解析速度快,占用内存少:3.JDOM解析方法,查找方便:4.DOM4J解析方法,解析XML的速度快. 在XML的 ...

  3. java 解析/操作 xml 几种常用方式 xml的增加/删除/修改

    java 解析/操作 xml 几种常用方式 xml的增加/删除/修改 首先,我们先介绍几种常用的xml解析器. 1. 介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方 ...

  4. xml的三种解析方式

    本篇博客重点介绍Android中三种解析XML的方式,包括PULL.SAX.DOM,当然不止这些,还可以用第三方的jar包提供的解析,只是这三种在Android中比较常用吧.再顺便介绍一下Androi ...

  5. 【框架学习】XML四种解析方案

    目前比较有名的 xml解析方式有: (1).DOM (2).SAX (3).JDOM (4).DOM4J 一.DOM解析 DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次 ...

  6. XML文件的解析方式

    XML文件4种解析方式分别是:DOM解析,SAX解析,JDOM解析,DOM4J解析. 1.基础方法: DOM:与平台无关的官方的解析方式. SAX:Java平台提供的基于事件驱动的解析方式. 2.扩展 ...

  7. JSON的三种解析方式以及JSONObject、JSONArray区别

    JSON的常用两种解析方式 一.什么是JSON? JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度. JSON就是一串 ...

  8. 单例模式的几种实现方式及优缺点

    参考:单例模式的几种实现方式及优缺点. 转载于:https://www.cnblogs.com/wenxiangchen/p/11343331.html

  9. JSON的两种解析方式

    JSON的两种解析方式:Gson和Fastjson,下面来看下这两种解析方法怎样使用,并且他们有哪些区别. 1.Gson: Gson是谷歌的一款JSON解析工具. 功能①:将对象转化为JSON字符串 ...

最新文章

  1. spring-cloud-ribbon负载均衡
  2. 烂泥:ubuntu 14.04搭建Open***服务器
  3. Linux-NFS原理介绍
  4. ClickHouse | MergeTree引擎之数据分区
  5. CSS基础——position位置属性
  6. C语言用指针求两个矩阵的差,求破C语言用指针和函数求转置矩阵
  7. 学Python做人工智能的前景怎么样?如何入行?
  8. kmp算法的c语言,KMP算法 纯C实现
  9. LoRa、Sigfox和NB-IoT在物联网趋势中谁是你的最佳拍档?
  10. LeetCode 506. 相对名次(map)
  11. 原码一位乘法器设计_数字IC校招基础知识点复习(七)——超前进位加法器、Wallace树、Booth乘法器...
  12. 语句乎?表达式乎?(Python/C)
  13. matlab fseek ftell,fseek函数、ftell函数和fflush函数
  14. 美国邮编大全及邮政编码规范
  15. 优米网:20部电影,哈佛商学院学生必看   下载地址
  16. python opencv双目测距_使用OpenCV/python进行双目测距
  17. 最新elasticsearch版本与jdk版本对应图
  18. html桌面天干地支,天干地支-janlen-ChinaUnix博客
  19. c语言next函数定义,c语言的数据结构中,next是如何指向下一个元素的?
  20. 期货平仓/强制平仓/爆仓-股市平仓建仓

热门文章

  1. Vscode+Latex 添加引用文献及自动刷新
  2. js快速学习思维导图
  3. 和计算机相关的社团活动,(完整版)计算机社团活动方案
  4. think php getfield,getField如何在ThinkPHP项目中使用
  5. 成都远石无人机航测服务内容
  6. 阅览室问题(C#实现)
  7. 2022上海快递物流展,上海快递展,砥砺前行-移师上海新国际博览中心
  8. 在mac上如何用safari调试ios手机的移动端页面
  9. C语言 输入字符 ,判断是否为字母(包括大小写)
  10. java 10进制转64进制_十进制与64进制互相转换算法