dom4j介绍
dom4j的项目地址:
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(); } }}