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

XMLReader—一个可以读取XML文件的java类

2013-04-12 23:17 363 查看
在我的博文java ArrayList代替数组中有个XMLReader类,这是一个可以读取XML文件的java类,它的实现过程是怎样的呢?接下来让我们看看XMLReader的实现过程:

首先你要下载一个叫dom4j-1.6.1.jar包,XMLReader类会用到这个jar包。

其次让我们看看一个数据库连接的XML文件时怎样的:

<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory name="foo">

<property name="connection.driver_class">com.mysql.jdbc.Driver</property>

<property name="connection.url">jdbc:mysql://localhost/db?characterEncoding=gb2312</property>

<property name="connection.username">root</property>

<property name="connection.password">root</property>

</session-factory>
</hibernate-configuration>

这个名为db.xml的文件就是我们要读的关于数据库连接的XML文件。<session-factory name="foo"></session-factory>为一组,里面每个property都是以键值对存储的。

接着,XMLReader类如下:

import java.io.*;
import java.util.*;

import org.dom4j.*;
import org.dom4j.io.*;

public class XMLReader {

public static List<String> getdbxml() {
List<String> db=new ArrayList<String>();
try {
File f = new File("D:\\db.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(f);
Element root = doc.getRootElement();
Element fo;
Element value;
int j=0;
//迭代器查看有几个session-factory
for (Iterator i = root.elementIterator("session-factory"); i.hasNext();)
{
fo = (Element) i.next();//将foo赋给fo,然后循环查看名为property的值,存到db里
for(Iterator k = fo.elementIterator("property");k.hasNext();)
{
value = (Element)k.next();
db.add((String)value.getData());//使用ArrayList的add方法将元素存储到容器里
j++;
}
}

} catch (Exception e) {
e.printStackTrace();
}
return db;
}
}


用到的是dom4j包下的SAXReader这个类来获取xml文件,然后的几部在上面注释了,希望对大家有所帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: