xml小伙伴们并不陌生,xml是可扩展标记语言,标准通用标记语言语言的子集,是一种用来标记电子文件使其具有结构性的标记语言。我们知道xml可以用dom与sax等方法进行解析,但是xml为什么要解析呢?为什么html就不用解析?小伙伴们可以思考一下,我们知道xml和html都是标签化的代码,其实也都是网页的一种写法,但是浏览器决定了显示什么,也就是浏览器直接解析html的基本标签,目前来说xml从一种网页应用,走向了一种格式化信息的应用,因为,我们需要使用xml里的这些信息,所以我们需要解析她,因为她的那些格式标签不是我们所需要的,我们需要的标签里的那些内容,从标签来判断这些内容是什么类型的内容,就放在什么地方,这个过程就是解析。java中解析xml的方式有四种,分别是dom、sax、jdom、dom4j,这篇博文,小编主要介绍一下dom4j解析xml文件,其他解析方式,小编也会一一进行简单介绍。
dom4j解析xml文件
dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面还可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,所以可以知道dom4j无论在哪个方面都是非常出色的。如今可以看到越来越多的Java软件都在使用dom4j来读写XML,特别值得一提的是连Sun的JAXM也在用dom4j。这已经是必须使用的jar包, Hibernate也用它来读写配置文件。
我们采用的配置文件是xml,以前也使用propert文件,propert的功能不是很强大,现在使用的不是很多,大部分的配置都指向了xml文件,xml文件比较强大,所以,我们把数据库里面的配置配到xml文件里面,让小伙伴了解xml文件怎么编写,怎么配置,怎么读取,xml文件如下所示:
<?xml version="1.0" encoding="UTF-8"?><config> <db-info> <driver-name>com.mysql.jdbc.Driver</driver-name> <url>jdbc:mysql:///shop</url> <user-name>root</user-name> <password>123456</password> </db-info></config>
名字和标签小伙伴们可以根据自己的喜好进行命名,xml的解析方式有dom、sax、jdom、dom4j,她们都是解析xml的工具,其中sax解析是针对事件进行解析,效率较高,而最常用的是dom解析,也就是从根元素开始对xml进行解析,因为是
从头开始,所以当文档很大时,有时效率不高,另外修改删除也不是很方面,jdom和dom4j用起来差不多,就是方法有一点不同,接着我们以dom4j解析为例,代码如下所示:
package com.bjpowernode.drp.util;import java.io.InputStream;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;/** * 解析单例模式sys-config.xml文件 * @author 丁国华 * */