dom4j是一个Java的XML API,类似于jdom,用来读取的XML文件,由于它是将文件解析完存放在内存当中的,所以不适合解析大的XML文件,但就方便性和性能方面,一定程度要优于JDK中Domcument和SAX解析的。下面我就用dom4j来对xml文件进行遍历,感兴趣的同学可以看一下,注释很详细

被解析的XML文件studentInfo.xml

<?xml version="1.0" encoding="UTF-8"?>

<school>

	<college name="云计算">
<class name="1410A" classroom="36306">
<student>
<property name="name" value="张三"></property>
<property name="age" value="23"></property>
<property name="garden" value="男"></property>
</student>
<student>
<property name="name" value="李四"></property>
<property name="age" value="22"></property>
<property name="garden" value="女"></property>
</student>
<student>
<property name="name" value="王五"></property>
<property name="age" value="24"></property>
<property name="garden" value="男"></property>
</student>
</class>
</college> <college name="传媒">
<class name="1408C" classroom="35108">
<student>
<property name="name" value="小明"></property>
<property name="age" value="21"></property>
<property name="garden" value="男"></property>
</student>
<student>
<property name="name" value="小宇"></property>
<property name="age" value="22"></property>
<property name="garden" value="男"></property>
</student>
<student>
<property name="name" value="小张"></property>
<property name="age" value="25"></property>
<property name="garden" value="男"></property>
</student>
<student>
<property name="name" value="小红"></property>
<property name="age" value="20"></property>
<property name="garden" value="女"></property>
</student>
</class>
</college> </school>

  首先创建File,获取到根节点

	/**
* 功能:获取文件的document对象,然后获取对应的根节点
* 作者:茹子赫
* 时间:2016年12月6日 上午9:30:38
*/
@Test
public void testGetRoot() throws Exception{ //获取读取xml方式
SAXReader reader = new SAXReader(); //找到xml文件位置
File file = new File("studentInfo.xml"); //读取文档并存入到document中,如果文档无节点,则会抛出Exception提前结束  
Document document = reader.read(file); //获取根节点
Element root = document.getRootElement(); //从根节点遍历所有子节点
this.getNodes(root);
}

  

从根节点开始,递归遍历所有节点和属性

     /**
* 功能:递归遍历所有子节点
* 作者:茹子赫
* 时间:2016年12月6日 上午9:31:13
*/
public void getNodes(Element node){ System.out.println("------------------------"); System.out.println("当前节点名称:"+node.getName());
System.out.println("节点的内容:"+node.getTextTrim()); //所有节点 List
List<Attribute> listAttr = node.attributes(); //遍历所有节点的所有属性
for(Attribute attr : listAttr){ //属性的名称
String name = attr.getName(); //属性的值
String value = attr.getValue(); System.out.println("属性名称:"+name+" 属性值:"+value);
} //递归遍历当前节点所有的子节点  
List<Element> listElement = node.elements(); //遍历所有一级子节点
for(Element e : listElement){
this.getNodes(e);
}
}

  部分输出结果

------------------------
当前节点名称:school
节点的内容:
------------------------
当前节点名称:college
节点的内容:
属性名称:name 属性值:云计算
------------------------
当前节点名称:class
节点的内容:
属性名称:name 属性值:1410A
属性名称:classroom 属性值:36306
------------------------
当前节点名称:student
节点的内容:
------------------------
当前节点名称:property
节点的内容:
属性名称:name 属性值:name
属性名称:value 属性值:张三
------------------------
当前节点名称:property
节点的内容:
属性名称:name 属性值:age
属性名称:value 属性值:23
------------------------
当前节点名称:property
节点的内容:
属性名称:name 属性值:garden
属性名称:value 属性值:男
------------------------
当前节点名称:student
节点的内容:
------------------------
当前节点名称:property
节点的内容:
属性名称:name 属性值:name
属性名称:value 属性值:李四
------------------------
当前节点名称:property
节点的内容:
属性名称:name 属性值:age
属性名称:value 属性值:22
------------------------
当前节点名称:property
节点的内容:
属性名称:name 属性值:garden
属性名称:value 属性值:女
------------------------

  其中我们也要用到dom4j-1.6.1.jar包

Dom4j解析xml文件的更多相关文章

  1. 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】

    一.简介 1.使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作. 2.去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...

  2. 用DOM4J解析XML文件案例

    用DOM4J解析XML文件案例,由于DOM4J不像JAXP属于JAVASE里,所以如果要使用DOM4J,则必须额外引入jar包,如图:

  3. 使用DOM4J解析XMl文件与读取XML文件

    XML文件 <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book id ...

  4. Dom4j解析Xml文件,Dom4j创建Xml文件

    Dom4j解析Xml文件,Dom4j创建Xml文件 >>>>>>>>>>>>>>>>>>&g ...

  5. Java进阶(二十七)使用Dom4j解析XML文件

    使用Dom4j解析XML文件 写在前面的话 由于论文实验要求,需要实现操作XML文档,为此想到了dom4j这个工具,使用之后深感受益.在此分享给大家,以此共勉. 注:本文转载自http://blog. ...

  6. 使用dom4j 解析xml文件

    //使用dom4j 解析xml文件,升级版,dom4j是对dom的封装 //重点 package com.offcn.utils; import java.io.File; import java.i ...

  7. dom4j 解析XML文件

    <?xml version="1.0" encoding="UTF-8"?> <!-- 手机的根节点 --> <Phones> ...

  8. 用dom4j解析xml文件并执行增删改查操作

    转自:https://www.aliyun.com/jiaocheng/1339446.html xml文件: <?xml version="1.0" encoding=&q ...

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

    简单介绍 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方.我们还是看一下官方给出的解释.例如以下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT ...

  10. java中采用dom4j解析xml文件

    一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...

随机推荐

  1. 使用串口线真机调试Linux内核

    一.环境 ubuntu 14.04 一台有串口的PC(编号PC1,被调试机器) 另一台PC通过USB转串口线连接PC1(编号PC2,发起调试命令的机器) 二.串口线配置及测试 安装cutecom US ...

  2. 1877: [SDOI2009]晨跑

    1877: [SDOI2009]晨跑 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 2007  Solved: 1085[Submit][Status][ ...

  3. 010商城项目:商品类目的选择——Dao,Service.Action层的分析

    我们现在开始写商品类选择这个功能: 先看效果: 当我们点击"新增商品"---->"选择目录"然后从数据库中查出来数据并显示了. 我们分析数据库的那张表: ...

  4. 用信息值进行特征选择(Information Value)

    Posted by c cm on January 3, 2014 特征选择(feature selection)或者变量选择(variable selection)是在建模之前的重要一步.数据接口越 ...

  5. Redis设计与实现读书笔记(二) 链表

    链表作为最基础的数据结构,在许多高级语言上已经有了很好的实现.由于redis采用C语言编写,需要自己实现链表,于是redis在adlist.h定义了链表类型.作者对于这部分没什么好说,源码比较简单,如 ...

  6. mysql-netstat

    在Linux服务器中想要查看连接到服务器的所有IP地址只需要输入命令netstat -an就可以看到全部的资料. 该命令的常见参数供您参考: -a (all)显示所有选项,默认不显示LISTEN相关: ...

  7. 在Mac系统中安装及配置Apache Tomcat

    1.下载Tomcat http://tomcat.apache.org/download-80.cgi 下载ZIP包,解压后放至任意地址,本例中放在/Users/GuQiang/Tomcat/apac ...

  8. Linux下如何查找.sh后缀的文件

    find / -name *.sh或locate *.shfind 与locate的区别:locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称

  9. Xamarin.ios 基本控件

    .按钮 UIButton UIButton btn = new UIButton(); btn.Frame = ,,,); //按钮位置一件宽高 btn.SetTitle("Button&q ...

  10. linux下cetos7无线网络设置办法

    首先检查是否安装了networkmanger wifi.RPM 检查方法,终端输入rpm一qa 如果不存在,利用rpm一ivh 文件名 进行安装,并且重启