XMl基础(三)---DOM4j 对XMl文档的解析

本文介绍了使用DOM4J解析XML文档的方法,包括如何加载XML文件到内存中的Document对象,如何遍历XML文档的节点及属性,以及如何利用XPath进行快速定位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前我所见过的XMl文档的解析方式已经不少了,但是用的很少, 因为我只是在学习,如果仔细的记住每一步, 脑细胞有点不够用,个人感觉,既然是解析XML文档,肯定要根据XML文档的结构来办,不同解析方式的方法虽不同,但目的是一样的。

1)DOM4J
DOM4J是一套非常优秀的Java XMLAPI。使用它可以创建XML文档,也可以解析XML文档。
它在解析XMl文档时,会把XML文档封装成Document对象,装载进内存。
a,获取文档对象:

        SAXReader reader = new SAXReader();
        Document document = reader.read(url);
        //or
      Document document = DocumentHelper.parseText(  "<root> <child id='1'>James</child> </root>");

b,快速遍历:

       Element root = document.getRootElement();
        // iterate through child elements of root
        for ( Iterator i = root.elementIterator(); i.hasNext(); ) {
            Element element = (Element) i.next();
            // do something
        }

        // iterate through child elements of root with element name "foo"
        for ( Iterator i = root.elementIterator( "foo" ); i.hasNext(); ) {
            Element foo = (Element) i.next();
            // do something
        }

        // iterate through attributes of root 
        for ( Iterator i = root.attributeIterator(); i.hasNext(); ) {
            Attribute attribute = (Attribute) i.next();
            // do something
        }

c,使用xPath快速定位文档数据:

        List list = document.selectNodes( "//foo/bar" );  //选择所有父亲是foo的bar元素
        Node node = document.selectSingleNode( "//foo/bar/author" );

        String name = node.valueOf( "@name" )  //选择元素的name属性

        //
        public void findLinks(Document document) throws DocumentException {

        List list = document.selectNodes( "//a/@href" );  
        for (Iterator iter = list.iterator(); iter.hasNext(); ) {
            Attribute attribute = (Attribute) iter.next();
            String url = attribute.getValue();
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值