XML解析(四):dom4j解析

来源:互联网 发布:热血传奇怪物敏捷数据 编辑:程序博客网 时间:2024/06/03 17:29

概述

      dom4j是解析XML的另一种扩展方式,是JDOM的一种智能分支,合并了许多超出xml文档表示的功能。dom4j大量使用接口,是一个优秀的java XML API,具有性能优异,灵活性好,功能强大和易使用的特点。

示例

dom4j使用时需要导包,这里使用dom4j-1.6.1.jar

XML文件

book.xml

<?xml version="1.0" encoding="UTF-8"?><bookstore>   <book id="1">      <name>java编程思想</name>      <author>Bruce Eckel</author>      <year>2015</year>      <price>79</price>   </book>   <book id="2">      <name>深入理解java虚拟机</name>      <author>周志明</author>      <price>40</price>   </book></bookstore>

解析过程

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 DOM4JXMLTest {    /**     * @param args     * 使用DOM4J方式解析xml文件     *      */    public static void main(String[] args) {        // TODO Auto-generated method stub        //创建SAXReader对象        SAXReader read=new SAXReader();        try {            //通过SAXReader对象的read方法加载xml文件,获取document对象代表整个xml            //read()方法是重载的,可以从InputStream、File、Url等多种不同的源来读取            Document document = read.read(new File("src/res/book.xml"));            //通过document对象获取根结点bookstore            Element   bookStore=document.getRootElement();            //通过element对象的elementIterator方法获取迭代器            Iterator it = bookStore.elementIterator();            //遍历迭代器            while(it.hasNext()){                System.out.println("=============开始遍历某一本书=============");                Element book=(Element) it.next();                //获取book的属性                List<Attribute> bookAttrs= book.attributes();                for(Attribute attr : bookAttrs){                    System.out.println("属性名:"+attr.getName()+"属性值:"+attr.getValue());                }                Iterator itt=book.elementIterator();                while(itt.hasNext()){                    Element child=(Element) itt.next();                    System.out.println("节点名:"+child.getName()+"---节点值:"+child.getStringValue());                }                System.out.println("=============结束遍历某一本书=============");            }        } catch (DocumentException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}
原创粉丝点击