`
zhaobing315
  • 浏览: 231688 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

dom4j解析xml实例

阅读更多

dom4j是一个java的XML API,类似jdom,用来读写XML文件,它性能优异、功能强大和极易使用等特点

所用jar包:dom4j-1.6.1.jar

需要解析的xml文件:people.xml

 

<people city="shenzhen">
	<student name="milton" age="22"></student>
	<student name="lego" age="23"></student>
	<teacher name="bruce" age="27"></teacher>
	<teacher name="ziven" age="28"></teacher>
</people>

首先根据xml文档构建javabean

People.java

Student.java

Teacher.java

 解析代码:

 

package com.test.xml;

import java.io.File;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import com.test.xml.element.People;
import com.test.xml.element.Student;
import com.test.xml.element.Teacher;

public class XmlParser {
	@SuppressWarnings("unchecked")
	public static People parseXml(String xmlPath){
		File xmlFile = new File(xmlPath);
		System.out.println(xmlFile.getPath());
		if(xmlFile.exists()){
			SAXReader reader = new SAXReader();
			People people = new People();
			try {
			    //读入文档流
				Document document = reader.read(xmlFile);
				//获取根节点
				Element root = document.getRootElement();
				
				List<Student> students = new ArrayList<Student>();
				List<Teacher> teachers = new ArrayList<Teacher>();
				people.setCity(root.attributeValue("city"));
				//解析student节点
				for(Iterator iterator = root.elementIterator("student");iterator.hasNext();){
					Element eStudent = (Element) iterator.next();
					Student student = new Student(eStudent.attributeValue("name"), Integer.parseInt(eStudent.attributeValue("age")));
					students.add(student);
				}
				//解析teacher节点
				for(Iterator iterator = root.elementIterator("teacher");iterator.hasNext();){
					Element eTeacher = (Element) iterator.next();
					Teacher teacher = new Teacher(eTeacher.attributeValue("name"), Integer.parseInt(eTeacher.attributeValue("age")));
					teachers.add(teacher);
				}
				people.setStudent(students);
				people.setTeacher(teachers);
				System.out.println("parse success!");
			} catch (DocumentException e) {
				e.printStackTrace();
			}
			return people;
		}else{
			System.out.println("file is not exist!");
			return null;
		}
	}
	
	public static void main(String[] args) throws URISyntaxException{
		String xmlPath = "";
		xmlPath = "D:/Program Files/eclipse-jee/workspace/TEST/src/com/test/xml/people.xml";
		System.out.println("file full path is "+xmlPath);
		//解析people.xml
		People p = parseXml(xmlPath);
		
		//处理解析结果
		System.out.println(p.getCity());
		List<Student> sList = p.getStudent();
		List<Teacher> tList = p.getTeacher();
		for(Student s:sList){
			System.out.println(s.getName()+"--"+s.getAge());
		}
		for(Teacher t:tList){
			System.out.println();
		}
	}
}
运行结果:
parse success!
shenzhen
milton--22
lego--23
分享到:
评论
2 楼 ssssd1000 2013-12-18  
请楼主把
People.java

Student.java

Teacher.java
这三个文件一块放上来,代码才更容易理解.....
1 楼 zmx200908 2012-06-11  
感谢分享~

相关推荐

    dom4j 解析xml实例

    在这个实例中,我们将深入探讨如何使用DOM4J解析XML文件,并通过`Dom4jTest1.java`这个示例程序来理解其工作原理。 首先,我们需要了解XML(Extensible Markup Language)是一种标记语言,常用于存储和传输数据。...

    DOM、JDOM、DOM4J解析XML实例

    ### DOM、JDOM、DOM4J解析XML实例 #### DOM解析XML DOM(Document Object Model)是一种树形结构的数据模型,用于表示XML或HTML文档。它允许程序在内存中加载整个文档,并通过提供的API来访问和修改文档中的任何...

    DOM、JDOM、DOM4J解析XML实例.pdf

    ### DOM、JDOM、DOM4J解析XML实例详解 #### DOM 方式解析 XML 实例解析 ##### 一、DOM 概述与应用实例 DOM(Document Object Model)是一种树状结构的标准,用于表示 XML 文档的数据结构。它将 XML 文档视为节点...

    dom4j解析xml字符串实例

    dom4j解析xml字符串实例

    dom4j解析xml

    **DOM4J解析XML** DOM4J是一个Java库,它为处理XML提供了强大的功能,包括读取、写入、修改和操作XML文档。这个库以其灵活性、效率和易用性而受到开发者的青睐。DOM4J是基于DOM(Document Object Model)的,但它...

    dom4j解析xml,利用反射机制

    在这个项目中,我们利用DOM4J来解析XML文件,并通过Java的反射机制将解析出的信息存储到特定的类中。 首先,我们需要了解XML的基本概念。XML(Extensible Markup Language)是一种标记语言,常用于数据交换和结构化...

    dom4j 解析(读取) xml 节点数据

    要开始解析XML文件,首先需要导入DOM4J的相关包: ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; ``` 接下来,我们将创建...

    使用dom4j解析XML

    【使用dom4j解析XML】 dom4j是一个强大的开源XML框架,它提供了处理XML文档的各种功能,包括解析、创建、修改等。相比W3C DOM API,dom4j的优势在于其内置的XPath支持,允许更方便地定位和操作XML文档中的节点。 *...

    DOM4J解析XML代码

    在使用DOM4J解析XML文件之前,需要导入DOM4J相关的jar包,通常版本为1.6.1。 #### DOM4J常用对象 - **SAXReader**: 用于读取XML文件,并将其转换成Document对象。 - **Document**: XML文档对象树,类似于HTML文档...

    分别使用DOM和DOM4j解析XML文件

    使用DOM解析XML的基本步骤如下: 1. 创建DocumentBuilderFactory实例。 2. 使用DocumentBuilderFactory创建DocumentBuilder实例。 3. 使用DocumentBuilder的parse()方法解析XML文件,得到Document对象。 4. 通过...

    dom4j解析xml,连接oracle数据库

    在本实例中,我们将深入探讨如何使用DOM4J解析XML,并利用这些数据连接Oracle数据库进行数据操作。 首先,让我们了解DOM4J的基本用法。DOM4J的主要类包括`Document`、`Element`、`Attribute`和`Namespace`。`...

    DOM4J 解析XML

    ##### 2.2 DOM4J解析XML实例 为了更好地理解DOM4J的工作原理,我们来看一个具体的例子: 假设有一个名为`goodsDetail.xml`的XML文件,内容如下: ```xml &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;goodsId&gt;...

    用dom4j解析xml文件

    本篇文章将深入探讨如何使用DOM4J来解析XML文件,以及通过示例代码来展示其基本操作。 首先,我们需要理解DOM4J的工作原理。DOM4J采用的是DOM(Document Object Model)模型,它将整个XML文档加载到内存中形成一棵...

    dom4j解析xml.txt

    ### DOM4J解析XML知识点详解 #### 一、DOM4J简介 DOM4J(Document Object Model for XML)是一款用于处理XML文档的轻量级Java库。它提供了一种非常简单且灵活的方式来创建、读取、修改和删除XML文档。DOM4J的主要...

    dom4j读写xml文档实例

    在这个实例中,我们将深入理解DOM4J库如何帮助我们处理XML文档,并通过实际操作来熟悉其核心功能。 XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等领域。...

    xmldom4j解析

    在“jar包执行20190331.rar”文件中,可能包含了一个Java项目,该项目使用DOM4J库解析XML文件并执行相关业务逻辑。执行此类项目通常涉及以下步骤: 1. 将jar包解压,找到主类(包含main方法)。 2. 使用Java命令行...

    Dom4j解析XML及中文问题

    本文将深入探讨如何使用Dom4j解析XML以及解决中文乱码的问题。 首先,让我们了解Dom4j的基本用法。在解析XML文件时,通常会使用`DocumentBuilderFactory`和`DocumentBuilder`来创建一个`Document`对象,然后通过这...

Global site tag (gtag.js) - Google Analytics