DOM4J是dom4j.org出品的一个开源XML解析包。Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,採用了Java集合框架并全然支持DOM,SAX和JAXP。Hibernate也是用它来读写配置文件的。  

  

一、DOM4j的下载  

dom4j-1.6.1.jar 下载:http://sourceforge.net/directory/os:windows/freshness:recently-updated/?q=dom4j  

  

二、DOM4j解析XML文件

AirPortLine.xml文件例如以下:

<?xml version="1.0" encoding="UTF-8"?>
<AirPortLine>
<line lid="MU2480" num="3">
<id>1</id>
<station>
<sid>1</sid>
<sname>武汉</sname>
</station>
<station>
<sid>2</sid>
<sname>石家庄</sname>
</station>
<station>
<sid>3</sid>
<sname>北京</sname>
</station>
</line>
<line lid="MU2483" num="4">
<id>2</id>
<station>
<sid>1</sid>
<sname>重庆</sname>
</station>
<station>
<sid>2</sid>
<sname>武汉</sname>
</station>
<station>
<sid>3</sid>
<sname>上海</sname>
</station>
<station>
<sid>4</sid>
<sname>东京</sname>
</station>
</line>
<line lid="MU2485" num="2">
<id>3</id>
<station>
<sid>1</sid>
<sname>上海</sname>
</station>
<station>
<sid>2</sid>
<sname>纽约</sname>
</station>
</line>
</AirPortLine>

Java DOM4J解析XML代码例如以下:

package com.hsinghsu.testXML;  

import java.io.File;
import java.util.Iterator; import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader; public class testDOM4J { public static void main(String[] args) { try {
File file = new File("AirPortLine.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(file); parseDOM4J(doc);// 解析XML文档 //String xmlStr = getStringFromXML(doc);// 将XML文档转换为String
//System.out.println("xmlStr:" + xmlStr); //String str = "<?xml version='1.0' encoding='UTF-8'?><AirPortLine><line lid='MU2480' num='3'><id>1</id><station><sid>1</sid><sname>武汉</sname></station><station><sid>2</sid><sname>石家庄</sname></station><station><sid>3</sid><sname>北京</sname></station></line><line lid='MU2482' num='4'><id>2</id><station><sid>1</sid><sname>重庆</sname></station><station><sid>2</sid><sname>武汉</sname></station><station><sid>3</sid><sname>上海</sname></station><station><sid>4</sid><sname>东京</sname></station></line><line lid='MU2483' num='2'><id>3</id><station><sid>1</sid><sname>上海</sname></station><station><sid>2</sid><sname>纽约</sname></station></line></AirPortLine>";
//Document document = getXMLDocFromString(str);// 将String转换为XML文档 } catch (Exception e) {
System.out.println("Can't read the file");
}
} // 解析XML文档
private static void parseDOM4J(Document doc) {
Element root = doc.getRootElement();
for (Iterator iter = root.elementIterator("line"); iter.hasNext();) {// 遍历line结点的全部子节点,也能够使用root.elementIterator()
Element element = (Element) iter.next(); Attribute lidAttr = element.attribute("lid");// 获取<line>元素的属性
String lid = lidAttr.getValue();// 获取<line>元素的属性值
Attribute numAttr = element.attribute("num");// 获取<line>元素的属性
String num = numAttr.getValue();// 获取<line>元素的属性值 String id = element.elementText("id");// 获取<line>元素下<id></id>的值 System.out.println("==lid:" + lid);
System.out.println("==num:" + num);
System.out.println("==路线id:" + id); for (Iterator iterInner = element.elementIterator("station"); iterInner.hasNext();) { // 遍历station结点的全部子节点
Element elementInner = (Element) iterInner.next(); String sid = elementInner.elementText("sid");// 获取<station>元素下<sid></sid>的值
String sname = elementInner.elementText("sname");// 获取<station>元素下<sname></sname>的值 System.out.println("----站--sid:" + sid);
System.out.println("----站--sname:" + sname);
} }
} // 将XML文档转换为String
private static String getStringFromXML(Document doc) {
return doc.asXML();
} // 将String转换为XML文档
private static Document getXMLDocFromString(String str) {
try {
return DocumentHelper.parseText(str);
} catch (DocumentException e) {
e.printStackTrace();
return null;
} }

Java DOM4J读取XML的更多相关文章

  1. java DOM4J 读取XML

    最近学习Java,在处理XML文档的时候,查阅相关资料,发现了DOM4J这个jre库,相对C#的XML处理来说,功能还算是跟得上 下面展示一篇我自己写的一个XML读取测试 import java.ut ...

  2. 深入浅出Java Dom4j读取XML

    在以前自己使用的xml较少,只是了解其很强大,现在可算是在DRP中,真正的开始使用它了,以前只是简单的理解xml,xml即可扩展标记语言,简单的使用,具体是什么?怎么用?还是一直让自己期待的. 首先来 ...

  3. Java使用dom4j读取xml时报错:org.dom4j.DocumentException: Error on line 2 of document : Invalid byte 2 of 2-byte UTF-8 sequence. Nested exception: Invalid byte 2 of 2-byte UTF-8 sequence

    1.Java使用dom4j读取xml时报错: org.dom4j.DocumentException: Error on line 2 of document  : Invalid byte 2 of ...

  4. RSS阅读器(一)——dom4j读取xml(opml)文件

    接触java不久,偶有收获,最近想做一个web版RSS阅读器来锻炼一下.手头有几个从不同版本的foxmail中导出的opml文件,大家应该都知道,opml文件就是xml格式的.那么就先从这里入手,练习 ...

  5. 使用dom4j 读取XML文件

    第一次接触dom4j的时候,感觉这个东西很神秘,因为之前虽然知道XML文件吧,但从来没有用过,一直感觉XML肯定不好操作.当得知,dom4j可以很容易的操作读取XML文件时,不免有些好奇,那么,用do ...

  6. DOM4J读取XML文件

    最近在做DRP的项目,其中涉及到了读取配置文件,用到了DOM4J,由于是刚开始接触这种读取xml文件的技术,好奇心是难免的,于是在网上又找了一些资料,这里就结合找到的资料来谈一下读取xml文件的4中方 ...

  7. java Domj4读取xml文件

    先概括,再以代码形式给出. 获取节点: Iterator  Element.nodeIterator();  //获取当前标签节点下的所有子节点 获取 标签: Element Document.get ...

  8. 【XML】利用Dom4j读取XML文档以及写入XML文档

    Dom4j简介 dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的.dom4j是一个十分优秀的JavaXML API,具有性能优异.功能强大和极其易使用的特点,它的性能 ...

  9. 使用dom4j读取xml连接数据库与之单例模式

    使用dom4j读取xml ,加入jar包 dom4j-1.6.1.jar jaxen-1.1-beta-6.jar public class XmlConfigReader { //懒汉式,延迟加载 ...

随机推荐

  1. mysql相关日志汇总

    日志作为重要的查询问题的手段.所以尽量记录上自己须要的日志.以供自己查询一些问题. MySQL有下面几种日志: 错误日志: -log-err 查询日志: -log 慢查询日志: -log-slow-q ...

  2. OpenCV-Python教程(5、初级滤波内容)

    本篇文章介绍如何用OpenCV-Python来实现初级滤波功能. 提示: 转载请详细注明原作者及出处,谢谢! 本文介绍使用OpenCV-Python实现基本的滤波处理 本文不介绍滤波处理的详细概念,所 ...

  3. C#获取Excel中所有的Sheet名称

    原文地址:http://blog.csdn.net/qq1010726055/article/details/6858849 Excel.Application myExcel = new Excel ...

  4. 手机装linux系统

    第一步: 首先 , 你的手机需要获取root权限. 如果不知道如何获取, 可以到电脑上搜索一下安卓手机root教程. 不同品牌的手机root的方法不同. 也可以到机锋论坛上寻找root的具体方法. 第 ...

  5. hdu1292(递推dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1292 分析:    i代表人数,j代表组数,有dp[i][j]=dp[i-1][j-1]+dp[i-1 ...

  6. 【足迹C++primer】30、概要(泛型算法)

    概要(泛型算法) 大多数算法的头文件中定义algorithm在. 标准库也是第一个文件numeric它定义了一套通用算法. #include<iostream> #include<n ...

  7. Android的PackageManager的使用

    Android系统提供了很多服务管理的类,包括ActivityManager.PowerManager(电源管理).AudioManager(音频管理)以及PackageManager管理类.Pack ...

  8. Libgdx: 将Texturepacker打包的PNG图片还原成一张一张的单个的

    你是否发现用Texturepacker在打包压缩资源文件之后. 把原稿文件弄丢了,可是又要添加新的小png的时候,却无从下手了,本文就是博主在遇到这个问题后百度了非常多方法,可惜仅仅有plist格式的 ...

  9. Android - 位置定位(Location)服务(Service)类的基本操作

    位置定位(Location)服务(Service)类的基本操作 本文地址: http://blog.csdn.net/caroline_wendy 定位服务(Location Service),能够确 ...

  10. Ice-2.1.2在RHEL Server 5.5上的安装

         因为项目的需要,服务器上的程序需要使用Ice接口与其它程序通信,对方提供了一个Windows版的工程,我要把它移植到Linux服务器上,既然Ice是跨平台跨语言的中间件,想来移植不是很困难, ...