什么是Dom4j及其初级使用方法

本文介绍了Dom4j——一种高效的Java XML解析工具,并通过一个数据库配置文件的示例展示了如何使用Dom4j进行XML文件的解析。文章还讨论了采用配置文件而非硬编码参数的优点。

什么是Dom4j及其初级使用方法

(一)什么是Dom4j?

Dom4jDocument for Java的简称,是用java解析dom文档的组件。

在绝大多数应用中,都会需要配置文件。比如要将数据库从mysql改为oracle,使用配置文件会很方便,而不需要修改代码,所以解析配置文件、读取信息也是代码的一部分。

如今有很多种解析xml文件的方式:DOMSAXJDomDom4j等等。其中最优秀、使用最广的就是Dom4j。著名的Hibernate框架也是使用这的,Sun官方也是使用Dom4j的。关于上面四者的介绍与优缺点可参考:http://qqwyy.javaeye.com/blog/150227

(二)Dom4j怎么解析XML

下面我们就以数据库的配置文件为例,来讲解一下Dom4j是怎么解析xml文件的。

平时我们在用java代码连接数据库时,肯定会用到Class.forName(className);conn = DriverManager.getConnection(url,username, password);如果更换了数据库,就会更换classNameurl,或者更换了usernamepassword,这样都会更改代码,这样的方式是不合理的。所以应该把这些会变更的代码提取在配置文件里,以后要更换了数据库,可以直接修改配置文件,而不用更改代码。数据库配置文件DBConfig.xml如下:

<?xml version="1.0" encoding="UTF-8"?> <db_config> <driver-name>oracle.jdbc.driver.OracleDriver</driver-name> <url>jdbc:oracle:thin:@localhost:1521:oracle</url> <username>admin</username> <password>admin</password> </db_config>

那么Dom4j怎么解析该xml文件呢?

首先要使用Dom4j先引入jar包。下载Dom4j,以dom4j-1.6.1为例:将dom4j-1.6.1.jarlib/jaxen-1.1-beta-6.jarjar包加入。

接着解析代码如下:

import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class DBConfig { static String[] dbInfo = new String[4]; // 使用单例模式 private static DBConfig instanse = null; private DBConfig() { Document d1 = null; try { d1 = new SAXReader().read(Thread.currentThread() .getContextClassLoader() .getResourceAsStream("DBConfig.xml")); Element e1 = (Element) d1 .selectObject("/db_config/driver-name"); Element e2 = (Element) d1.selectObject("/db_config/url"); Element e3 = (Element) d1 .selectObject("/db_config/username"); Element e4 = (Element) d1 .selectObject("/db_config/password"); dbInfo[0] = e1.getStringValue(); dbInfo[1] = e2.getStringValue(); dbInfo[2] = e3.getStringValue(); dbInfo[3] = e4.getStringValue(); } catch (DocumentException e) { e.printStackTrace(); } } public static DBConfig getInstance() { if (instanse == null) { instanse = new DBConfig(); } return instanse; } public String[] getDbInfo() { return dbInfo; } //一个main测试方法: public static void main(String[] args){ String[] dbInfo = DBConfig. getInstance(). getDbInfo(); for(int i= 0;i< dbInfo.lenght;i++){ System.out.println(dbInfo[i]); } } }

代码使用单例模式,只有一个实例。在构造方法中读取DBConfig.xml文件并解析。这样读取一次后,以后就再也不用读取文件了,直接使用既可以了。如果要更换数据库,可以直接修改DBConfig.xml文件。

到此就完成了xml文件的解析。因此可以用Dom4j解析xml文件了。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值