美文网首页
Java 7: XML - DOM4J

Java 7: XML - DOM4J

作者: 老柯南 | 来源:发表于2019-04-01 09:51 被阅读0次

    解析XML
    DOM :(Java提供) (整个文件加载到内存中去执行解析)以指定编码解析
    SAX :(Javat提供) 创建一个Handler类逐个节点的访问解析;个人理解因为不是一次性加载到内存,这个不提供修改保存;是事件形驱动;可以指定编码解析
    JDOM :通过Stream 流的形式一次性解析加载到内存。和DOM解析类似,即使不知道第一级节点的标签名也能遍历解析; 还可以指定编码解析;
    DOM4J :通过Stream 流的形式一次性解析加载到内存。和DOM解析类似,即使不知道第一级节点的标签名也能遍历解析; 还可以指定编码解析;是JDOM的一个分支;

    DOM4J解析

    DOM4J不是Java 官方提供,需要自己导入依赖;

    准备工作

            SAXReader saxReader = new SAXReader();
            org.dom4j.Document document = saxReader.read(new File("books.xml"));
            org.dom4j.Element rootElement = document.getRootElement();
    
     public static void dom4jParser() throws DocumentException {
            SAXReader saxReader = new SAXReader();
            org.dom4j.Document document = saxReader.read(new File("books.xml"));
            org.dom4j.Element rootElement = document.getRootElement();
    
            Iterator<org.dom4j.Element> iterator = rootElement.elementIterator();
    
            while (iterator.hasNext()) {
                org.dom4j.Element element = iterator.next();
    
                // 获取属性   element.attributeIterator();  element.attribute(int / String)
                List<org.dom4j.Attribute> attributes = element.attributes();
                for (org.dom4j.Attribute attr : attributes) {
                    System.out.println(attr.getName() + "  " + attr.getValue());
                }
                System.out.println(element.getName());
            }
    
            //选择过滤,只保留book标签
            Iterator<org.dom4j.Element> iterator1 = rootElement.elementIterator("book");
    
            while (iterator1.hasNext()) {
                org.dom4j.Element element = iterator1.next();
                System.out.println(element.getName());
    
                Iterator childIterator = element.elementIterator();
                while (childIterator.hasNext()) {
                    // 获取子元素 其实也是element
                    org.dom4j.Element next = (org.dom4j.Element) childIterator.next();
                    System.out.println(next.getName() + "    " + next.getStringValue());
                }
    
            }
        }
    

    相关文章

      网友评论

          本文标题:Java 7: XML - DOM4J

          本文链接:https://www.haomeiwen.com/subject/kcdmbqtx.html