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

原创 2013年04月12日 14:48:13

在我的博文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文件,然后的几部在上面注释了,希望对大家有所帮助。

相关文章推荐

【JAVA】java:使用XMLReaderFactory类和XMLReader类解析XML文档

java:使用SAXParserFactory类和SAXParser类解析XML文档  java:使用JDOM解析XML文档       .java:使用XMLReaderFactory类...
  • kenkywu
  • kenkywu
  • 2012年02月16日 17:12
  • 2576

使用XmlReader读Xml

XmlDocument和XElement在读取Xml时要将整个Xml文档放到内存中去操作,这样做操作简单,但是很费内存和IO(可能是磁盘IO或者网络IO);而在有些场景下我们必须考虑尽可能节省内存和I...

使用JAXP进行SAX解析(XMLReaderFactory、XMLReader 、SAXParserFactory与SAXParser)

SAX解析XML文件采用事件驱动的方式进行,也就是说,SAX是逐行扫描文件,遇到符合条件的设定条件后就会触发特定的事件,回调你写好的事件处理程序。使用SAX的优势在于其解析速度较快,相对于DOM而言占...

C#温故而知新学习系列之XML编程—2-Xml读取器XmlReader类

前言     XmlReader类提供了对XML文档内容快速的,只向前的访问,但不适合对文档内容和结构进行修改,XmlReader从XML文档的顶部开始读取数据,每次读取一个节点   读取XML文...

java操作xml文件的一个简单代码

  • 2009年05月15日 19:51
  • 20KB
  • 下载

Jenkins系列之—17 一个完整的JENKINS下的ANT BUILD.XML文件

网上看见的,确实很全,该有的基本都覆盖到了。自己拿来稍微改改就可以用了。 注:property中的value是你自己的一些本地变量。需要改成自己的  xml version="1.0"...

C# 简单封装一个XML文件读取类

很久没碰XML文件读写了,今天帮朋友写了一个相关的读取XML文件的操作类,封装成dll便于使用。先说下需求吧:A:在XML文件中有多个集,每个集里面包含多个节点。B:可根据集的名字的取出这个集合下面的...

通过XMLReader 读取服务器的xml 文件(通过sax2)

本文通过参考http://www.iteye.com/topic/763895 网站 通过读本地磁盘取得xml 可以参考  http://www.iteye.com/topic/763895网站  ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:XMLReader—一个可以读取XML文件的java类
举报原因:
原因补充:

(最多只允许输入30个字)