Dom4j解析XML
来源:互联网 发布:php在线模拟考试系统 编辑:程序博客网 时间:2024/06/02 05:10
XML被设计用来结构化、存储以及传输数据。在项目中使用广泛,那么如何解析XML文件呢?DOM4J是一个非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,让我们一块来看使用Dom4j解析XML的一个实例:
1、jar包引入
本实例用到了dom4j-1.6.1.jar的包
2、XML文件结构
<?xml version="1.0" encoding="UTF-8"?> <university> <college category="211"><name>海南大学</name><short>海大</short><startTime>1958</startTime><address>美兰区</address> </college> <college category="985"> <name>清华大学</name> <short>清华</short> <startTime>1911</startTime> <address>海淀区</address> </college></university>
3、java代码
public class xmlParse { public static void main(String[] args) { Document doc;//创建Document对象 String file = "src/xml/test.xml";//文件路径 File XMLfile = new File(file);// File XMLfile = new File(xmlParse.class.getClassLoader().getResource(file).getFile()); SAXReader reader = new SAXReader();//创建SAXReader对象 try { doc = reader.read(XMLfile);//获取Document对象 Element root = doc.getRootElement(); System.out.println(root.getName());
for(Iterator<?> i = root.elementIterator("college"); i.hasNext();){ Element cont = (Element) i.next(); System.out.println("类别:"+cont.attributeValue("category")); System.out.println("学校名称:"+cont.elementText("name")); System.out.println("简称:"+cont.elementText("short")); System.out.println("创办时间:"+cont.elementText("startTime")); System.out.println("地址:"+cont.elementText("address")+"\r\n"); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } }}以上就是使用Dom4j解析XML的过程。
其他几种解析XML文件的方式总结:
1、DOM方式
DOM全称是Document Object Model,也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对这个对象模型的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可以在任何时候访问XML文档中的任何一部分数据,因此,这种利用DOM接口的机制也被称作随机访问机制。DOM方式为 XML 文档的解析版本定义了一组接口。解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以使用 DOM 接口来操作这个树结构。
优点:随机访问;支持删除、修改、重新排列等多种功能
缺点:当文档比较大或者结构比较复杂时,对内存的需求比较高
使用场合:一旦解析了文档还需多次访问这些数据;硬件资源充足
2、SAX方式
SAX的全称是Simple APIs for XML,也即XML简单应用程序接口。与DOM不同,SAX提供的访问模式是一种顺序模式,这是一种快速读写XML数据的方式。SAX解析采用了基于事件的模型,它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。由于应用程序只是在读取数据时检查数据,因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点。
优点:不用事先调入整个文档,占用资源少;SAX解析器代码比DOM解析器代码少
缺点:不是持久的;事件过后,若没保存数据,那么数据就丢了;无状态性;从事件中只能得到文本,但不知该文本属于哪个元素
使用场合:只需XML文档的少量内容,很少回头访问;机器内存少
3、JDOM生成和解析XML
为减少DOM、SAX的编码量,出现了JDOM,它简化与XML的交互并且比使用DOM实现更快。JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。JDOM自身不包含解析器。它通常使用SAX解析器来解析和验证输入XML文档。它包含一些转换器以将JDOM表示输出成SAX事件流、DOM模型或XML文本文档。
优点:极大减少了代码量
使用场合:要实现的功能简单,如解析、创建等,但在底层,JDOM还是使用了SAX、DOM文档
- 用DOM4J解析XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 解析xml之--DOM4J
- dom4j解析XML
- 使用 dom4j 解析 XML
- xml文件解析-DOM4J
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- dom4j解析xml方法
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- 使用 dom4j 解析 XML
- c# winform 设置winform进入窗口后在文本框里的默认焦点
- 第一次完成FFmepg的移植,编译ffmpeg4Android
- Android 最新技术链接汇总(持续更新)
- Spring4学习:基于@AspectJ和Schema的AOP
- 如何查看 CSDN 排名
- Dom4j解析XML
- 小程序开发入门
- vue2.0 windows环境搭建
- 精选30道Java笔试题解答
- 迂回方阵3
- C#实验4第4题
- jq插件扩展
- Javascript异步编程的4种方法
- c++ Vector创建二维数组 及其行列最大值读取