DOM4J方式解析XML文件
dom4j介绍
dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory
dom4j是一个简单的开源库,用于处理XML、 XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。
dom4j下载地址:http://download.csdn.net/detail/ww6055/8880397
dom4j的使用
下载了dom4j项目之后,解压缩,将其jar包(我的当前版本叫做dom4j-1.6.1.jar)加入class path下面。
(Properties->Java Build Path -> Add External JARs...)。
之后就可以使用其提供的API进行编程。
程序实例:
books.xml文件:(在src/res文件夹下)

Book.java实体类:
public class Book {
private String id;
private String name;
private String price;
private String author;
private String year;
private String language;
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
}
DOM4J解析XML文件Dom4jTest.java(注:文件中需要导入的Attribute、Document、Element、SAXReader都是DOM4J包下的):
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Dom4jTest {
public static void main(String[] args) {
//通过SAXReader的对象reader的read方法加载books.xml文件,获取Document对象
SAXReader reader = new SAXReader();
try {
Document doc=reader.read(new File("src/res/books.xml"));
//通过Document对象获取根节点
Element bookstore=doc.getRootElement();
//通过element对象的elementIterator方法获取迭代对象
Iterator it= bookstore.elementIterator();
//遍历迭代器,获取根节点中的信息
while(it.hasNext()){
System.out.println("=============开始遍历某一本书=============");
Element book=(Element) it.next();
List<Attribute> bookAttr=book.attributes();
for(Attribute attr:bookAttr){
System.out.println("属性名:"+attr.getName()+"---------------属性值:"+attr.getValue());
}
Iterator itt = book.elementIterator();
while(itt.hasNext()){
//book节点下的任意一个子节点
Element bookChild = (Element) itt.next();
System.out.println("节点名:"+bookChild.getName()+" ***** 节点值:"+bookChild.getStringValue());
}
System.out.println("=============结束遍历某一本书=============");
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
}
DOM4J方式解析XML文件的更多相关文章
- 用JAXP的dom方式解析XML文件
用JAXP的dom方式解析XML文件,实现增删改查操作 dom方式解析XML原理 XML文件 <?xml version="1.0" encoding="UTF-8 ...
- 在iOS 开发中用GDataXML(DOM方式)解析xml文件
因为GDataXML的内部实现是通过DOM方式解析的,而在iOS 开发中用DOM方式解析xml文件,这个时候我们需要开启DOM,因为ios 开发中是不会自动开启的,只有在mac 开发中才自动开启的.我 ...
- JDOM,dom4j方式解析XML
<?xml version="1.0" encoding="UTF-8"?> <dataSources> <!-- 定义MySQL ...
- dom4j如何解析XML文件
最近在 一些对xml文件的操作,下面简单写一个dom4j解析xml文件并将其封装到一个javabean中的例子,只是具有针对性的,不是通用的,仅供参考哦~~ 首先说:dom4j是一个java的XML ...
- 用JAXP的SAX方式解析XML文件
简单用JAXP的SAX方式(事件驱动)解析XML文件: 文件(1.XML) <?xml version="1.0" encoding="UTF-8" st ...
- android-pull方式解析xml文件以及XML文件的序列化
android解析XML ---------------------------基础要像磐石 在android平台上可以使用SAX.DOM和自带的Pull解析器解析xml文件,本文主要介绍使用pull ...
- Java&Xml教程(五)使用SAX方式解析XML文件
Java SAX解析机制为我们提供了一系列的API来处理XML文件,SAX解析和DOM解析方式不太一样,它并不是將XML文件内容一次性全部加载,而是连续的部分加载. javax.xml.parsers ...
- Java&Xml教程(二)使用DOM方式解析XML文件
DOM XML 解析方式是最容易理解的,它將XML文件作为Document对象读取到内存中,然后你可以轻松地遍历不同的元素和节点对象.遍历元素和节点不需要按照顺序进行. DOM解析方式适合尺寸较小的X ...
- SAX方式解析XML文件实例
books.XML文件: 书籍book.java实体类: public class Book { private String id; private String name; private Str ...
随机推荐
- Java之DataInputStream和DataOutputStream-用流操作基本数据类型
package FileDemo; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.Fi ...
- [C语言 - 14] 进制
进制 二进制 int number = 0B1010; 没有二进制的输出格式 八进制 int number2 = 07613; printf("number2 = %o\ ...
- KVC, KVO实现原理剖析
iPhone程序开发 KVO/KVC实现机理分析是本文要介绍的内容,不多说,直接进入话题.我们来看详细内容. Objective-C里面的Key-Value Observing (KVO)机制,非常不 ...
- http 需要掌握的知识点(一)
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.HTTP 也属于 TCP/IP 协议族的子集,想要学习 HTTP ,先需要了解 ...
- PHP+MySQL开发技术详解—学习笔记
1. PHP is Hypertext Preproocessor. 2. Hello World: <?php Echo ‘Hello World!’; ?> 3. ...
- mysql服务的启动和停止 net stop mysql net start mysql
第一招.mysql服务的启动和停止 net stop mysql net start mysql 第二招.登陆mysql 语法如下: mysql -u用户名-p用户密码 键入命令mysql -uroo ...
- 项目androidAnt编译打包Android项目
时间紧张,先记一笔,后续优化与完善. Ant编译打包Android项目 在Eclipse中对Android项目停止编译和打包如果项目比较大的话会比较慢,所以改为Ant工具来停止编译和打包 Ant环境配 ...
- [Sciter系列] MFC下的Sciter–1.创建工程框架
Sciter SDK中提供的Win32下例程很多,唯独使用很多(对我个人而言)的MFC框架下Sciter程序的构建讲的很少,虽然MFC有这样那样的诟病,但是不可否认的是编写一般的小项目,这仍然是大 ...
- c# label的内容显示不全
c# label的内容显示不全.须要设置例如以下属性就可以: 1.将Lable的font属性的字体改成宋体: 2.将AutoSize属性改成true: 然后内容就能够显示所有了.
- 详解Android ActionBar之一:ActionBar概述与创建
前面一个系列中讲的是Fragment的内容,Android 3.0中除Fragment外,Action Bar同样也是一个很重要的知识点.我们经常使用Action Bar来替代传统的标题栏.如果是An ...