xml之DOM4J解析

注:需要导入dom4j 相关jar包

package com.suse.dom4jtest;

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 DOM4JTest {

    /**
     * @param args
     * @throws DocumentException
     */
    public static void main(String[] args) throws DocumentException {
        // 解析books.xml文件
        SAXReader reader = new SAXReader();
        // 通过reader对象的read方法加载xml文件,并获取document对象
        Document document = reader.read(new File("src/res/books.xml"));
        // 通过document获取根结点bookstore
        Element bookStore = document.getRootElement();
        // 通过element对象的elementIterator()方法获取迭代器
        Iterator it = bookStore.elementIterator();
        // 遍历迭代器,获取根结点的信息(书籍)
        while (it.hasNext()) {
            System.out.println("========开始遍历某一本书======");
            Element book = (Element) it.next();// 由于next方法返回的是object类型,而我们遍历的是Element类型的元素,所以我们做下强制转换
            // 获取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 bookChild = (Element) itt.next();// 强转同上
                System.out.println("节点名:" + bookChild.getName() + "-----节点值:"
                        + bookChild.getStringValue());

            }
            System.out.println("========结束遍历某一本书======");
        }

    }

}
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book  id="1">
<name>冰与火之歌</name>
<author>乔治马丁</author>
<year>2014</year>
<price>89</price>
</book>
<book id="2">
<name>安徒生童话</name>
<year>2004</year>
<price>66</price>
<language>English</language>
</book>
</bookstore>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值