一.什么是dom4j
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。在IBM developerWorks上面可以找到一篇文章,对主流的Java XML API进行的性能、功能和易用性的评测,dom4j无论在那个方面都是非常出色的。
二.何为XML文件
XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。
三.dom4j解析XML文件测试
首先我们建立一个XML文件如下所示
studentinfo.xml
<?xml version="1.0" encoding="UTF-8"?>
<classinfo>
<classname>cn.zld.testdom.StudentInfo</classname>
<element>
<methodname>setStName</methodname>
<value>张立冬</value>
</element>
<element>
<methodname>setStNumber</methodname>
<value>20080810</value>
</element>
<element>
<methodname>setAge</methodname>
<value>20</value>
</element>
</classinfo>
建立StduentInfo类文件
package cn.zld.testdom;
/**
* 学生信息类
* @author 张立冬
*
*/
public class StudentInfo {
private String stName; //学生名字
private String stNumber; //学生学号
private String Age; //学生年龄
public String toString(){
return "学生名字:"+this.getStName()+" 学生学号:"+this.getStNumber()+" 学生年龄:"+this.getAge();
}
//getter & setter 方法
public String getStName() {
return stName;
}
public void setStName(String stName) {
this.stName = stName;
}
public String getStNumber() {
return stNumber;
}
public void setStNumber(String stNumber) {
this.stNumber = stNumber;
}
public String getAge() {
return Age;
}
public void setAge(String age) {
Age = age;
}
}
测试主类Test
package cn.zld.testdom;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import org.dom4j.DocumentException;
/**
* dom4j使用测试
* @author 张立冬
*
*/
public class Test {
public static void main(String args[]){
try{
Test te=new Test();
te.readXML();
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 读取XML文件
*/
public void readXML(){
//创建文件对象
java.io.File file=new java.io.File("studentinfo.xml");
if(file.exists()){
try{
//创建一个读取XML文件的对象
org.dom4j.io.SAXReader reader=new org.dom4j.io.SAXReader();
//创建一个文档对象
org.dom4j.Document document=reader.read(file);
//获取文件的根节点
org.dom4j.Element element=document.getRootElement();
System.out.println("得到根节点标签名:"+element.getName());
System.out.println("得到类名:"+element.elementText("classname"));
//根据得到的对象名创建对象
Class c=Class.forName(element.elementText("classname"));
Object obj=c.newInstance();
//获取该对象的所有方法
Method[] me=obj.getClass().getMethods();
//循环获取该对象的属性
for(java.util.Iterator i=element.elementIterator("element");i.hasNext();){
//获取节点元素
element=(org.dom4j.Element)i.next();
String methodname=element.elementText("methodname");
String value=element.elementText("value");
for(Method m:me){
if(m.getName().equals(methodname)){
//若得到的方法名一致则调用该方法
m.invoke(obj,value);
break;
}
}
}
System.out.println(obj);
}
catch(Exception e){
e.printStackTrace();
}
}
else{
System.out.println("XML文件不存在!");
}
}
}
在主类里面由于测试的需要一并连JAVA的反射机制一块测试了
我的主要目的在于降低StudentInfo与整个程序的藉合度,因为StudentInfo类是动态绑定的,同时也增加程序的可扩展性,虽然只是一个简单的测试,但对以后的开发还是有所帮助的
分享到:
相关推荐
在这个示例中,我们将深入探讨如何利用Maven管理和DOM4j来操作XML文件。 首先,让我们了解一下Maven。Maven是Apache软件基金会的一个项目,它通过定义项目对象模型(Project Object Model,POM)来管理项目的构建、...
在这个“dom4j解析xml文件所需jar和测试例子.zip”压缩包中,包含了三个关键的JAR文件和一个测试类,它们是使用DOM4J解析XML文件的基础。 1. **dom4j-1.6.1.jar**:这是DOM4J的核心库,包含了处理XML的各种类和接口...
2. **创建DocumentFactory**:DOM4J解析XML时,首先需要创建一个`DocumentFactory`实例,它是生成和解析XML文档的核心工厂类。 3. **读取XML文件**:使用`DocumentFactory`的`parse()`方法,传入XML文件的路径,来...
在这个场景下,描述提到的测试涉及到了50多万条数据的解析,这无疑是对DOM4J性能的一次挑战。 首先,我们来深入理解DOM4J的核心概念。DOM4J使用Document Object Model (DOM) API,但它的设计比标准DOM更加轻量级和...
- 首先,需要使用`DocumentBuilder`解析XML文件,创建`Document`对象。 - 然后,通过`Document`对象获取根元素,再遍历其子元素和属性。 - `Element`对象提供了访问子元素、属性和文本内容的方法,如`elementList...
本文将深入探讨如何使用Dom4jTest工具来解析XML文件,揭示其核心概念、优势以及具体的操作步骤。 首先,Dom4j是一个非常流行的Java库,专门用于处理XML文档。它提供了简单而强大的API,使得XML的读取、写入、修改和...
**DOM4J解析XML** DOM4J是Java中一个非常流行的XML处理库,它提供了丰富的API来处理XML文档。在本文中,我们将深入探讨如何使用DOM4J进行XML的解析,包括创建XML文档,添加、修改和删除XML节点,以及XML的格式化...
在提供的“analysis_xml”项目中,很可能包含了一个示例,演示了如何使用dom4j的SAX解析器解析XML文件。这样的测试项目有助于理解SAX解析的工作原理,并在实际开发中应用。 总结起来,dom4j库提供了DOM和SAX两种XML...
这个压缩包包含两个重要的JAR文件,即dom4j-1.6.1.jar和jaxen-1.1.1.jar,它们在解析XML时起着关键作用。 1. **DOM4J库(dom4j-1.6.1.jar)**: - DOM4J提供了一种基于事件的模型,类似于DOM(Document Object ...
在DOM4J中,解析XML文件主要通过`DocumentBuilder`来实现。首先,需要创建一个`DocumentBuilderFactory`实例,然后通过该工厂创建`DocumentBuilder`,最后使用`parse()`方法加载XML文件并构建XML文档的DOM表示。 3...
在实际项目中,`testPuke`文件可能是测试用例,包含使用DOM4J进行XML操作的代码示例。通过运行这些示例,你可以更好地理解和掌握DOM4J的用法。DOM4J的灵活性和易用性使其成为Java开发中处理XML的首选工具之一,无论...
在DOM4J中使用SAX解析XML文件的基本步骤如下: 1. 引入DOM4J库:首先,你需要在项目中引入DOM4J的依赖。如果是在Maven项目中,可以在pom.xml文件中添加对应的依赖项;如果是传统的Java项目,需要将lib目录下的jar包...
// 使用DOM或DOM4j解析XML并存储到document } public void updateXML() { // 在document上执行修改操作 } public void addXML() { // 在document上执行添加操作 } public void deleteXML() { // 在...
在这个话题中,我们将深入探讨Spring框架如何利用DOM4J解析XML配置文件,依赖注入(DI)的概念,以及IoC的实现方式,同时也会讲解反射在Spring中的应用。 首先,DOM4J是一个强大的XML处理库,它为Spring框架提供了...
这个“xml-dom4j解析工具类”显然是为了简化XML文档操作而设计的,它利用DOM4J库来处理XML数据。 首先,让我们详细了解一下DOM4J的核心概念。DOM4J提供了一个灵活的API,以树形结构表示XML文档。在DOM(Document ...
3. **解析XML**:DOM4J提供两种主要的解析方式,SAX解析和DOM解析。SAX解析适用于大型XML文件,因为它以流式处理数据,占用内存小;DOM解析则将整个XML文档加载到内存,便于操作,适合小型文件。 4. **操作XML**:...
DOM4J使用Document Object Model(DOM)模型来解析XML,该模型将整个XML文档加载到内存中,形成一个树形结构,方便遍历和操作。然而,这种全面加载的方式在处理大型XML文件时可能会导致内存消耗过大,特别是在资源...
描述中提到"使用dom4j解析xml,对xml进行读写操作",这意味着这个项目不仅演示了如何使用Dom4j库读取XML文件,还涵盖了写入XML的操作。通过这个项目,我们可以学习到如何在Java中利用Dom4j进行XML文档的解析、节点的...
例如,你可以先使用dom4j解析XML文件并创建文档对象,然后利用jaxen提供的API执行XPath查询,获取所需的信息。这样,两者结合可以实现高效且灵活的XML处理。 总之,dom4j-1.6.1.jar和jaxen-1.1-beta-7.jar是Java中...