网站首页 > java教程 正文
首先我们来了解一下什么XML格式。
XML全称为Extensible Markup Language,是一种通用的数据交换格式,具备平台无关性、系统无关性、语言无关性等优点,在数据交互中带来极大地便利。值得一提的是,在不同语言环境中的解析方式都是一样的,只不过实现的语法不同罢了。
XML文件解析的方法有四种,分别为:DOM解析、SAX解析、JDOM解析、DOM4J解析。其中前两种属于基础方法,是官方提供的平台无关的解析方式;后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于java平台。因此,在本次内容,我们主要讲解后两种只适合于Java平台的方法。
我们先来准备一份XML格式的数据,如下:
1.JDOM解析
JDOM是一个开源项目,它基于树形结构,利用纯Java的技术对XML文档实现解析、生成、序列化及多种操作。
使用JDOM前,需要先下载JDOM的jar包,并且把它加载在类路径里面:(Properties->Java Build Path -> Add External JARs...)
JDOM解析特点:
仅使用具体类,而不使用接口。
API大量使用了Collections类。
下面我们来实现用JDOM来解析上述的XML数据。
①先建立一个Student类(代码省略),并且初始化list对象,如下
②先做准备工作,建立对象
③进行逐步解析过程(省去了Catch部分代码)
2.DOM4J解析
dom4j是一个简单的开源库,用于处理XML、 XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。
同样使用它之前,我们需要去下载dom4j.jar包,并放在类路径下。
DOM4J解析特点:
JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能。
它使用接口和抽象基本类方法。
具有性能优异、灵活性好、功能强大和极端易用的特点。
是一个开放源码的文件
同样针对前面的Stud.xml,我们来用代码进行解析。
从代码量上看起来,DOM4J比JDOM要简洁一些。
3.简单总结
DOM4J性能最好,连Sun的JAXM也在用DOM4J。目前许多开源项目中大量采用DOM4J,例如大名鼎鼎的Hibernate也用DOM4J来读取XML配置文件。如果不考虑可移植性,那就采用DOM4J。
JDOM 在性能测试时表现不佳,在测试 10M 文档时内存溢出。在小文档情况下还值得考虑使用 JDOM。
每天进步一点点,每天消化一点点。如果文章对你有所帮助,点个赞呗。
- 上一篇: 从零开始学Java之带你学会解析XML文件
- 下一篇: XML文档基本认识和基于JAVA对简单解析
猜你喜欢
- 2024-10-17 Qt开发-DOM方式解析XML(qt开发工具)
- 2024-10-17 JAVA 操作笔记-XML(六)(xml在java中怎么用)
- 2024-10-17 作为一名程序猿,你不可不知的Java基础知识的三十个经典问答
- 2024-10-17 Android中XML文件解析,现在了解还不晚
- 2024-10-17 JSP 标准标签库(JSTL)(jsp标签库有哪些)
- 2024-10-17 Spring源码阅读:Spring XML解析机制
- 2024-10-17 XML文件(xml文件怎么打开)
- 2024-10-17 Python如何解析HTML和XML数据(python解析html xml最好的模块)
- 2024-10-17 深入解析Python中的XML处理:理论与实践的结合
- 2024-10-17 XML的解析方式(xml的解析方式有哪些)
你 发表评论:
欢迎- 05-16SpringBoot整合Redis实现常用功能
- 05-16基于Redis实现简单的延时消息队列
- 05-16安装Redis
- 05-16Spring系列之Redis的两种集成方式
- 05-16Django连接Redis集群问题排查思路和总结
- 05-16只需5分钟,完成Redis所有命令操作~
- 05-16熟练使用 Redis 的 5 大数据结构:Java 实战教程
- 05-16Redis 常见业务场景及实例(Java)
- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)