您的位置:首页 > 其它

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

2015-08-23 22:05 260 查看
目前我所见过的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();
        }
    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: