博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dom4j解析xml实例
阅读量:7289 次
发布时间:2019-06-30

本文共 2656 字,大约阅读时间需要 8 分钟。

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

所用jar包:dom4j-1.6.1.jar

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

1 
2
3
4
5
6

首先根据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
students = new ArrayList
(); List
teachers = new ArrayList
(); 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
sList = p.getStudent(); List
tList = p.getTeacher(); for(Student s:sList){ System.out.println(s.getName()+"--"+s.getAge()); } for(Teacher t:tList){ System.out.println(); } }}

  

转载于:https://www.cnblogs.com/limpoo/p/3386919.html

你可能感兴趣的文章
Exchange Server 2013 DAG高可用部署(七)-DAG配置(下)
查看>>
交换机中的堆叠与级连区别详解
查看>>
自定义View实例(三)----滑动刻度尺与流式布局
查看>>
nova-network
查看>>
NA-NP-IE系列实验21: EIGRP 路由汇总
查看>>
android api 中文 (74)—— AdapterView.AdapterContextMenuInfo
查看>>
【嵌入式】使用Cross Toolchain构建交叉工具链
查看>>
通过案例学调优之--Oracle数据块(block)
查看>>
puppet进阶指南——host资源详解
查看>>
你的负载均衡耐高温么?(译文)
查看>>
gerrit+gitlab整合调试
查看>>
linux下移动设备的挂载
查看>>
new及placememt new 异同点
查看>>
解决MySQL复合主键下ON DUPLICATE KEY UPDATE语句失效问题
查看>>
oracle10g遇到的问题总结
查看>>
前天在腾讯soso问问上别人问我raid问题?
查看>>
SQL Server专用管理员连接(Dedicated Admin Connection(DAC))
查看>>
Open-E DSS V7 应用系列之二 系统安装
查看>>
真实案例:网站遭遇DOS攻击
查看>>
linux下JDK、Tomcat的安装及配置
查看>>