您的位置:首页 > 编程语言 > Java开发

在java项目中如何利用Dom4j解析XML文件获取数据

2015-08-16 10:27 891 查看
在以前的学习.net时经常会遇到利用配置文件来解决项目中一些需要经常变换的数据,比如数据库的连接字符串儿等。这个时候在读取配置文件的时候,我们通常会用到一个雷configuration,通过这个类来进行直接读取,可以说这是程序中直接封装好的,包括配置文件中书写的格式等等。那么,如果,想要在配置文件中写一些其他的数据,直接以XML文件的格式进行书写,这个时候在后台如何读取XML文件中的数据呢?这里利用Dom4j来解析XML文件中连接oracle数据库的xml数据。

在使用之前,首先要在自己的项目中把Dom4j-1.6.1.jar文件包拷贝到项目中去。

1、创建一个xml文件

<?xml version="1.0" encoding="UTF-8"?>
<config>
	<db-info>
		<driver-name>oracle.jdbc.driver.OracleDriver</driver-name>
		<url>jdbc:oracle:thin:@localhost:1521:bjpowernode</url>
		<user-name>drp</user-name>
		<password>drp</password>
	</db-info>
</config>


2、新建一个用来读取Xml文件的一个控制台应用程序

具体实现如下:

import java.io.InputStream;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public static void main(String[] args) {
		SAXReader reader=new SAXReader();
		//通过获得当前线程,然后获取当前的类加载器,来获取对应的资源
		InputStream in=Thread.currentThread().getContextClassLoader().getResourceAsStream("sys-config.xml");
		try {
			//read之后会返回一个document对象
			Document doc=reader.read(in);//这里也可以直接读取文件reader.read(new File("sys-config.xml"))
			//通过document对象获取xml文件的节点元素,返回element,通过xpath路径获取
			Element driverNameElt=(Element) doc.selectObject("/config/db-info/driver-name");
			Element urlElt=(Element) doc.selectObject("/config/db-info/url");
			Element userNameElt=(Element) doc.selectObject("/config/db-info/user-name");
			Element passwordElt=(Element) doc.selectObject("/config/db-info/password");
		
			//获取标签中的值
			String driverName=driverNameElt.getStringValue();
			String url=urlElt.getStringValue();
			String username=userNameElt.getStringValue();
			String password=passwordElt.getStringValue();			
			
		      System.out.println(driverName);
System.out.println(url);
System.out.println(username);



System.out.println(password);
} catch (DocumentException e) {	
	   }
}



3、查看效果:



4、知识点联系

在利用Dom4j解析XML过程中,我在获取节点的时候用到了XPath路径,这个获取到的额每个节点都是一个Element类型,因此,我们获取到节点后可以对该节点进行操作,增删改查等操作。这里对XML文件的操作,类似于对HTML文档的操作,整个文件其实是一个document类型的文档,里面的每一个元素都是一个Element类型的元素,对它的很多操作其实是和操作HTML文档中的元素是类似的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: