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

在我的博文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读取XML文件数据,可以通过多种方法和库来实现。其中,常用的API包括JAXP(Java API for XML Processing),它提供了基本的XML处理能力。JAXP支持DOM(文档对象模型)、SAX(简单API用于XML)和StAX(基于流的API)三种解析方式。以下是使用DOM解析XML数据的一个简单示例: 1. 首先需要导入JAXP相关的: ```java import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.NodeList; import org.w3c.dom.Node; import org.w3c.dom.Element; ``` 2. 使用DocumentBuilderFactory和DocumentBuilder读取XML文件,并构建DOM对象: ```java public class XmlReader { public static void main(String[] args) { try { // 创建DocumentBuilderFactory实例 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); // 创建DocumentBuilder实例 DocumentBuilder builder = factory.newDocumentBuilder(); // 解析XML文件,构建Document对象 Document document = builder.parse("path/to/your/file.xml"); // 获取根元素 Node rootNode = document.getDocumentElement(); // 获取所有子元素(这里以获取所有书籍为例) NodeList bookNodes = rootNode.getChildNodes(); for (int i = 0; i < bookNodes.getLength(); i++) { Node bookNode = bookNodes.item(i); // 确保是元素节点 if (bookNode.getNodeType() == Node.ELEMENT_NODE) { Element bookElement = (Element) bookNode; // 假设每个书籍元素有一个"name"属性 String name = bookElement.getAttribute("name"); // 读取书籍的其他子元素,例如"author"等 // ... System.out.println("Book Name: " + name); // ... 输出其他信息 } } } catch (Exception e) { e.printStackTrace(); } } } ``` 在上述代码中,首先创建了一个DocumentBuilderFactory实例,然后通过它创建了一个DocumentBuilder实例。使用DocumentBuilder的parse方法可以解析XML文件,并得到一个Document对象。之后,可以通过这个Document对象来访问XML文件中的各个节点,获取所需的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值