dom4j解析xml实例

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

所用jar包:dom4j-1.6.1.jar

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

Xml代码  

  1. <people city="shenzhen">
  2. <student name="milton" age="22"></student>
  3. <student name="lego" age="23"></student>
  4. <teacher name="bruce" age="27"></teacher>
  5. <teacher name="ziven" age="28"></teacher>
  6. </people>

首先根据xml文档构建javabean

People.java

Student.java

Teacher.java

解析代码:

Java代码  

  1. package com.test.xml;
  2. import java.io.File;
  3. import java.net.URISyntaxException;
  4. import java.util.ArrayList;
  5. import java.util.Iterator;
  6. import java.util.List;
  7. import org.dom4j.Document;
  8. import org.dom4j.DocumentException;
  9. import org.dom4j.Element;
  10. import org.dom4j.io.SAXReader;
  11. import com.test.xml.element.People;
  12. import com.test.xml.element.Student;
  13. import com.test.xml.element.Teacher;
  14. public class XmlParser {
  15. @SuppressWarnings("unchecked")
  16. public static People parseXml(String xmlPath){
  17. File xmlFile = new File(xmlPath);
  18. System.out.println(xmlFile.getPath());
  19. if(xmlFile.exists()){
  20. SAXReader reader = new SAXReader();
  21. People people = new People();
  22. try {
  23. //读入文档流
  24. Document document = reader.read(xmlFile);
  25. //获取根节点
  26. Element root = document.getRootElement();
  27. List<Student> students = new ArrayList<Student>();
  28. List<Teacher> teachers = new ArrayList<Teacher>();
  29. people.setCity(root.attributeValue("city"));
  30. //解析student节点
  31. for(Iterator iterator = root.elementIterator("student");iterator.hasNext();){
  32. Element eStudent = (Element) iterator.next();
  33. Student student = new Student(eStudent.attributeValue("name"), Integer.parseInt(eStudent.attributeValue("age")));
  34. students.add(student);
  35. }
  36. //解析teacher节点
  37. for(Iterator iterator = root.elementIterator("teacher");iterator.hasNext();){
  38. Element eTeacher = (Element) iterator.next();
  39. Teacher teacher = new Teacher(eTeacher.attributeValue("name"), Integer.parseInt(eTeacher.attributeValue("age")));
  40. teachers.add(teacher);
  41. }
  42. people.setStudent(students);
  43. people.setTeacher(teachers);
  44. System.out.println("parse success!");
  45. } catch (DocumentException e) {
  46. e.printStackTrace();
  47. }
  48. return people;
  49. }else{
  50. System.out.println("file is not exist!");
  51. return null;
  52. }
  53. }
  54. public static void main(String[] args) throws URISyntaxException{
  55. String xmlPath = "";
  56. xmlPath = "D:/Program Files/eclipse-jee/workspace/TEST/src/com/test/xml/people.xml";
  57. System.out.println("file full path is "+xmlPath);
  58. //解析people.xml
  59. People p = parseXml(xmlPath);
  60. //处理解析结果
  61. System.out.println(p.getCity());
  62. List<Student> sList = p.getStudent();
  63. List<Teacher> tList = p.getTeacher();
  64. for(Student s:sList){
  65. System.out.println(s.getName()+"--"+s.getAge());
  66. }
  67. for(Teacher t:tList){
  68. System.out.println();
  69. }
  70. }
  71. }

Java代码  

  1. 运行结果:

Java代码  

  1. parse success!
  2. shenzhen
  3. milton--22
  4. lego--23

dom4j解析xml实例

时间: 2024-08-04 06:40:03

dom4j解析xml实例的相关文章

java dom4j解析xml实例(2)

java利用dom4j解析xml 需要的jar包: dom4j官方网站在 http://www.dom4j.org/ 下载dom4j-1.6.1.zip 解开后有两个包,仅操作XML文档的话把dom4j-1.6.1.jar加入工程就可以了,如果需要使用XPath的话还需要加入包jaxen-1.1-beta-7.jar(如果不导入这个架包程序可以执行出结果,但最后会报异常) 将相关jar包引入后,实际解析操作如下:  1.要解析的xml文件province.xml: <china dn="d

java dom4j解析xml实例

java利用dom4j解析xml 需要的jar包: dom4j官方网站在 http://www.dom4j.org/ 下载dom4j-1.6.1.zip 解开后有两个包,仅操作XML文档的话把dom4j-1.6.1.jar加入工程就可以了,如果需要使用XPath的话还需要加入包jaxen-1.1-beta-7.jar(如果不导入这个架包程序可以执行出结果,但最后会报异常) 将相关jar包引入后,实际解析操作如下:  1.要解析的xml文件data.xml: <?xml version="1

dom4j解析xml实例(2)

dom4j是一个java的XML API,类似jdom,用来读写XML文件,它性能优异.功能强大和极易使用等特点 所用jar包:dom4j-1.6.1.jar.jaxen-1.1-beta-6.jar 需要解析的xml文件:people.xml <people city="shenzhen"> <student name="milton" age="22"></student> <student name

java dom4j解析xml实例(3)

代码运行前需要先导入dom4j架包. 需要解析的XML文件test.xml如下: <students> <student age="25"><!--如果没有age属性,默认的为20--> <name>崔卫兵</name> <college>PC学院</college> <telephone>62354666</telephone> <notes>男,1982年生,硕士

XML_05_DOM、JDOM、DOM4J解析XML实例

标签: xmlstringencoding文档tabledisk 2012-06-12 20:31 866人阅读 评论(0) 收藏 举报 分类: XML(7) java(44) 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 一.DOM方式 原始name.xml [html] view plain copy <?xml version="1.0" encoding="GB2312" standalone="no"?&

【java项目实战】dom4j解析xml文件,连接Oracle数据库

简介 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方,我们还是看一下官方给出的解释.如下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT等语言的库.它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP等编程标准. 特点 dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用的特点,同时它也是一个开放源代码的软件.如今你可以看到越来越多的Java软件都在使用dom4j来读写XML,例

源生API解析XML文档与dom4j解析XML文档

一.XML语言 XML是一种可扩展的标记语言,是一种强类型的语言,类似HTML(超文本标记语言,是一种弱类型的语言).XML是一种通用的数据交换格式(关系型数据库),综上所诉:XML可以传输数据,也可以存储数据. 1.XML语言书写的注意事项 1.XML标签命名自定义[推荐英文],标签名中不能包含空格 2.XML空格和换行都表示数据,严格区分大小写 3.XML中特殊字符表示的数据需要使用特殊字符编码和HTML一样 4.CDATA区中的数据不会被识别为语法 <![CDATA[王天霸<>&l

【收藏用】--切勿转载JAVA 使用Dom4j 解析XML

原帖地址 : http://blog.csdn.NET/yyywyr/article/details/38359049 解析XML的方式有很多,本文介绍使用dom4j解析xml. 1.环境准备 (1)下载dom4j-1.6.1.jar (2)下载junit-4.10.jar 2.温馨提示 解析XML过程是通过获取Document对象,然后继续获取各个节点以及属性等操作,因此获取Document对象是第一步,大体说来,有三种方式: (1)自己创建Document对象   Document docu

转:在java中使用dom4j解析xml

在java中使用dom4j解析xml 虽然Java中已经有了Dom和Sax这两种标准解析方式 但其操作起来并不轻松,对于我这么一个初学者来说,其中部分代码是活生生的恶心 为此,伟大的第三方开发组开发出了Jdom和Dom4j等工具 鉴于目前的趋势,我们这里来讲讲Dom4j的基本用法,不涉及递归等复杂操作 Dom4j的用法很多,官网上的示例有那么点儿晦涩,这里就不写了 首先我们需要出创建一个xml文档,然后才能对其解析 xml文档: <?xml version="1.0" encod