DOM4J解析XML案例Demo(四)

一、介绍

    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 对象

转载于:https://my.oschina.net/Clarences/blog/1789457

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值