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
分享到:
相关推荐
在这个实例中,我们将深入探讨如何使用DOM4J解析XML文件,并通过`Dom4jTest1.java`这个示例程序来理解其工作原理。 首先,我们需要了解XML(Extensible Markup Language)是一种标记语言,常用于存储和传输数据。...
### DOM、JDOM、DOM4J解析XML实例 #### DOM解析XML DOM(Document Object Model)是一种树形结构的数据模型,用于表示XML或HTML文档。它允许程序在内存中加载整个文档,并通过提供的API来访问和修改文档中的任何...
### DOM、JDOM、DOM4J解析XML实例详解 #### DOM 方式解析 XML 实例解析 ##### 一、DOM 概述与应用实例 DOM(Document Object Model)是一种树状结构的标准,用于表示 XML 文档的数据结构。它将 XML 文档视为节点...
dom4j解析xml字符串实例
**DOM4J解析XML** DOM4J是一个Java库,它为处理XML提供了强大的功能,包括读取、写入、修改和操作XML文档。这个库以其灵活性、效率和易用性而受到开发者的青睐。DOM4J是基于DOM(Document Object Model)的,但它...
在这个项目中,我们利用DOM4J来解析XML文件,并通过Java的反射机制将解析出的信息存储到特定的类中。 首先,我们需要了解XML的基本概念。XML(Extensible Markup Language)是一种标记语言,常用于数据交换和结构化...
要开始解析XML文件,首先需要导入DOM4J的相关包: ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; ``` 接下来,我们将创建...
【使用dom4j解析XML】 dom4j是一个强大的开源XML框架,它提供了处理XML文档的各种功能,包括解析、创建、修改等。相比W3C DOM API,dom4j的优势在于其内置的XPath支持,允许更方便地定位和操作XML文档中的节点。 *...
在使用DOM4J解析XML文件之前,需要导入DOM4J相关的jar包,通常版本为1.6.1。 #### DOM4J常用对象 - **SAXReader**: 用于读取XML文件,并将其转换成Document对象。 - **Document**: XML文档对象树,类似于HTML文档...
使用DOM解析XML的基本步骤如下: 1. 创建DocumentBuilderFactory实例。 2. 使用DocumentBuilderFactory创建DocumentBuilder实例。 3. 使用DocumentBuilder的parse()方法解析XML文件,得到Document对象。 4. 通过...
在本实例中,我们将深入探讨如何使用DOM4J解析XML,并利用这些数据连接Oracle数据库进行数据操作。 首先,让我们了解DOM4J的基本用法。DOM4J的主要类包括`Document`、`Element`、`Attribute`和`Namespace`。`...
##### 2.2 DOM4J解析XML实例 为了更好地理解DOM4J的工作原理,我们来看一个具体的例子: 假设有一个名为`goodsDetail.xml`的XML文件,内容如下: ```xml <?xml version="1.0" encoding="UTF-8"?> <goodsId>...
本篇文章将深入探讨如何使用DOM4J来解析XML文件,以及通过示例代码来展示其基本操作。 首先,我们需要理解DOM4J的工作原理。DOM4J采用的是DOM(Document Object Model)模型,它将整个XML文档加载到内存中形成一棵...
### DOM4J解析XML知识点详解 #### 一、DOM4J简介 DOM4J(Document Object Model for XML)是一款用于处理XML文档的轻量级Java库。它提供了一种非常简单且灵活的方式来创建、读取、修改和删除XML文档。DOM4J的主要...
在这个实例中,我们将深入理解DOM4J库如何帮助我们处理XML文档,并通过实际操作来熟悉其核心功能。 XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等领域。...
在“jar包执行20190331.rar”文件中,可能包含了一个Java项目,该项目使用DOM4J库解析XML文件并执行相关业务逻辑。执行此类项目通常涉及以下步骤: 1. 将jar包解压,找到主类(包含main方法)。 2. 使用Java命令行...
本文将深入探讨如何使用Dom4j解析XML以及解决中文乱码的问题。 首先,让我们了解Dom4j的基本用法。在解析XML文件时,通常会使用`DocumentBuilderFactory`和`DocumentBuilder`来创建一个`Document`对象,然后通过这...