`
xiaodongdong
  • 浏览: 81289 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

dom4j解析XML文件测试

阅读更多

一.什么是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管理和DOM4j来操作XML文件。 首先,让我们了解一下Maven。Maven是Apache软件基金会的一个项目,它通过定义项目对象模型(Project Object Model,POM)来管理项目的构建、...

    dom4j解析xml文件所需jar和测试例子.zip

    在这个“dom4j解析xml文件所需jar和测试例子.zip”压缩包中,包含了三个关键的JAR文件和一个测试类,它们是使用DOM4J解析XML文件的基础。 1. **dom4j-1.6.1.jar**:这是DOM4J的核心库,包含了处理XML的各种类和接口...

    dom4j解析XML(带jar包了).

    2. **创建DocumentFactory**:DOM4J解析XML时,首先需要创建一个`DocumentFactory`实例,它是生成和解析XML文档的核心工厂类。 3. **读取XML文件**:使用`DocumentFactory`的`parse()`方法,传入XML文件的路径,来...

    dom4j 解析 大 文件

    在这个场景下,描述提到的测试涉及到了50多万条数据的解析,这无疑是对DOM4J性能的一次挑战。 首先,我们来深入理解DOM4J的核心概念。DOM4J使用Document Object Model (DOM) API,但它的设计比标准DOM更加轻量级和...

    通过Dom4j创建和读取xml文件下载

    - 首先,需要使用`DocumentBuilder`解析XML文件,创建`Document`对象。 - 然后,通过`Document`对象获取根元素,再遍历其子元素和属性。 - `Element`对象提供了访问子元素、属性和文本内容的方法,如`elementList...

    Dom4jTest解析xml文件

    本文将深入探讨如何使用Dom4jTest工具来解析XML文件,揭示其核心概念、优势以及具体的操作步骤。 首先,Dom4j是一个非常流行的Java库,专门用于处理XML文档。它提供了简单而强大的API,使得XML的读取、写入、修改和...

    dom4j解析XML

    **DOM4J解析XML** DOM4J是Java中一个非常流行的XML处理库,它提供了丰富的API来处理XML文档。在本文中,我们将深入探讨如何使用DOM4J进行XML的解析,包括创建XML文档,添加、修改和删除XML节点,以及XML的格式化...

    dom4j下sax解析xml

    在提供的“analysis_xml”项目中,很可能包含了一个示例,演示了如何使用dom4j的SAX解析器解析XML文件。这样的测试项目有助于理解SAX解析的工作原理,并在实际开发中应用。 总结起来,dom4j库提供了DOM和SAX两种XML...

    dom4j解析XML的两个JAR包

    这个压缩包包含两个重要的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文件

    在DOM4J中,解析XML文件主要通过`DocumentBuilder`来实现。首先,需要创建一个`DocumentBuilderFactory`实例,然后通过该工厂创建`DocumentBuilder`,最后使用`parse()`方法加载XML文件并构建XML文档的DOM表示。 3...

    dom4j操作xml

    在实际项目中,`testPuke`文件可能是测试用例,包含使用DOM4J进行XML操作的代码示例。通过运行这些示例,你可以更好地理解和掌握DOM4J的用法。DOM4J的灵活性和易用性使其成为Java开发中处理XML的首选工具之一,无论...

    dom4j下的sax解析xml

    在DOM4J中使用SAX解析XML文件的基本步骤如下: 1. 引入DOM4J库:首先,你需要在项目中引入DOM4J的依赖。如果是在Maven项目中,可以在pom.xml文件中添加对应的依赖项;如果是传统的Java项目,需要将lib目录下的jar包...

    Java解析XML文档(DOM与DOM4j两种方式)

    // 使用DOM或DOM4j解析XML并存储到document } public void updateXML() { // 在document上执行修改操作 } public void addXML() { // 在document上执行添加操作 } public void deleteXML() { // 在...

    spring dom4j 解析 依赖DI注入 ioc 反转 反射原理

    在这个话题中,我们将深入探讨Spring框架如何利用DOM4J解析XML配置文件,依赖注入(DI)的概念,以及IoC的实现方式,同时也会讲解反射在Spring中的应用。 首先,DOM4J是一个强大的XML处理库,它为Spring框架提供了...

    xml-dom4j解析工具类

    这个“xml-dom4j解析工具类”显然是为了简化XML文档操作而设计的,它利用DOM4J库来处理XML数据。 首先,让我们详细了解一下DOM4J的核心概念。DOM4J提供了一个灵活的API,以树形结构表示XML文档。在DOM(Document ...

    dom4j_1.6.1.jar dom4j_2.1.0.jar

    3. **解析XML**:DOM4J提供两种主要的解析方式,SAX解析和DOM解析。SAX解析适用于大型XML文件,因为它以流式处理数据,占用内存小;DOM解析则将整个XML文档加载到内存,便于操作,适合小型文件。 4. **操作XML**:...

    替换dom4j中的xml解析

    DOM4J使用Document Object Model(DOM)模型来解析XML,该模型将整个XML文档加载到内存中,形成一个树形结构,方便遍历和操作。然而,这种全面加载的方式在处理大型XML文件时可能会导致内存消耗过大,特别是在资源...

    Dom4j_demo.rar_DEMO_dom4j de_dom4j demo_dom4j demo project_xml读

    描述中提到"使用dom4j解析xml,对xml进行读写操作",这意味着这个项目不仅演示了如何使用Dom4j库读取XML文件,还涵盖了写入XML的操作。通过这个项目,我们可以学习到如何在Java中利用Dom4j进行XML文档的解析、节点的...

    解析xml两个jar包dom4j-1.6.1和jaxen-1.1-beta-7.jar

    例如,你可以先使用dom4j解析XML文件并创建文档对象,然后利用jaxen提供的API执行XPath查询,获取所需的信息。这样,两者结合可以实现高效且灵活的XML处理。 总之,dom4j-1.6.1.jar和jaxen-1.1-beta-7.jar是Java中...

Global site tag (gtag.js) - Google Analytics