您的位置:首页 > 其它

DOM4J解析XML案例Demo(四)

2018-04-03 18:16 85 查看

一、介绍

    DOM4J是一个开源的,基于Java的库来解析XML文档,它具有高度的灵活性,高性能和内存效率的API。这是java的优化,使用Java集合像列表和数组。它可以使用DOM,SAX,XPath和XSLT。它解析大型XML文档时具有极低的内存占用。

二、优点

    DOM4J使Java开发的灵活性和XML解析代码易于维护。它是轻量级的,快速的API。

三、DOM4J 类

    DOM4J定义了几个Java类。以下是最常见的类:

  • Document - 表示整个XML文档。文档Document对象是通常被称为DOM树。
  • Element - 表示一个XML元素。 Element对象有方法来操作其子元素,它的文本,属性和名称空间。
  • Attribute - 表示元素的属性。属性有方法来获取和设置属性的值。它有父节点和属性类型。
  • Node - 代表元素,属性或处理指令

四、常见DOM4J的方法

    当使用DOM4J,还有经常用到的几种方法:

  • SAXReader.read(xmlSource)() - 构建XML源的DOM4J文档。
  • Document.getRootElement() - 得到的XML的根元素。
  • Element.node(index) - 获得在元素特定索引XML节点。
  • Element.attributes() - 获取一个元素的所有属性。
  • Node.valueOf(@Name) - 得到元件的给定名称的属性的值。

五、xml文件

<?xml version = "1.0" encoding = "utf-8"?>
<books>
<book id="1">
<name>冰与火之歌</name>
<author>张三</author>
<pice>99</pice>
</book>
<book id="2">
<name>葫芦娃</name>
<pice>99</pice>
<year>1993</year>
</book>
</books>

六、DOM4J案例Demo

package com.da.xml;

import java.io.File;
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 DOM4J {

public static void main(String[] args) {
//创建SAXReader的对象reader
SAXReader reader = new SAXReader();
try {
//通过reader对象的read方法加载books.xml文件,获取document对象。
Document read = reader.read(new File("books.xml"));
//通过document对象获取根节点books
Element books = read.getRootElement();
////通过Element对象elementIterator方法获取迭代器
Iterator it = books.elementIterator();
//遍历迭代器,获取根节点中信息
while (it.hasNext()) {
System.out.println("解析一本本书");
Element book = (Element) it.next();
List<Attribute> booklist = book.attributes();
for (Attribute attribute : booklist) {
System.out.println("节点:"+attribute.getName()+":"+attribute.getValue());
}
Iterator elementIterator = book.elementIterator();
while (elementIterator.hasNext()) {
Element next1 = (Element) elementIterator.next();
System.out.println("节点:"+next1.getName()+":"+next1.getStringValue());
}
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

    结果

解析一本本书
节点:id:1
节点:name:冰与火之歌
节点:author:张三
节点:pice:99
解析一本本书
节点:id:2
节点:name:葫芦娃
节点:pice:99
节点:year:1993

七、扩展

    使用 DOM4J 解析将 XML 的内容和结构存入 JAVA 对象

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  DOM4J XML