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
分享到:
相关推荐
解压可以使用 文件放到相同目录就行了。
DOM、JDOM、DOM4J解析XML实例
DOM、JDOM、DOM4J解析XML实例.pdf
dom4j解析xml字符串实例
dom4j解析xml,连接oracle数据库实例
以解析STUDENTS.XML为实例,讲解如何用DOM4J解析XML代码,
dom,dom4j,sax解析xml 文件经典实例,内置详细注解
dom4j+xpath 解析和创建 xml 文件的简单实例
DOM4j解析XML的代码实例,大家可以参看
Dom4j解析xml文件,里面举了具体的解析的代码和实例
java dom4j方式解析xml文件实例,日常开发比较常用,这种方式有一定缺陷。
Dom4JXMl解析工具制作的Xml入门实例,包含创建、增加节点等操作
java dom 解析 xml 实例 介绍w3c中的元素的用法,以及在解析xml过程中用到的API进行详细解释
这里有很多dom4j解析的小例子,结合实例看看,就能懂得!
SAX解析XML文件的实例。一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析...当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml文件的实例
android为我们提供了多种解析方式,DOM解析,代码操作简单,一直为解析xml文件的一个不错的选择