Java22dom4j解析XML

作者: chad_it | 来源:发表于2016-11-29 20:54 被阅读21次

    Java dom4j解析XML第一步:导入dom4j

    http://www.jianshu.com/p/afc98f9bcfdb

    Java dom4j解析XML第二步:读取XML文件

    //创建SAXReader对象用于读取XML
    SAXReader saxReader = new SAXReade();
    //返回Document对象
    Document document = saxReader.read(XML文件);
    

    Java dom4j解析XML第三步:遍历Document对象

    • 方式一:遍历器
    Iterator<Node> iterator = document.nodeIterator();
    while(iterator.hasNext()) {
        Node node = iterator.next();
        //得到节点的标签名
        node.getName();
        //得到节点的类型名
        node.getNodeTypeName();
        //获取node下的节点
        Iterator<Node> nodeInterator = ((Element)node).nodeIterator();
        while(nodeInterator.hasNext()) {
            Node nextNode = nodeIterator.next();
            //如果xml文件使用“Pretty”样式,节点间的空格和回车也属于Node,只是没有标签名,且属于text
            if(nextNode instanceof Element) {
                nextNode.getName();
                nextNode.getNodeTypeName();
            }
        }
    }
    
    • 方式二:递归方式
    //获取根节点
    Element rootElement = document.getRootElement();
    getElementsFrom(rootElement);
    private static void getElementsFrom(Element element) {
        //获取某个节点的所有直接子节点
        List<Element> elements = element.elements();
        //遍历
        for(Element ele : elements) {
            //判断节点的属性个数
            if(ele.attributeCount() > 0) {
                //遍历节点的属性
                for(int i = 0; i < ele.attributeCount(); i ++) {
                    Attribute attribute = ele.attribute(i);
                }
            }
            //节点的标签名
            ele.getName();
            //判断某个节点是否只包含文本内容
            if(ele.isTextOnly()) {
                //节点下的文本内容
                ele.getText();
            }
            getElementsFrom(ele);
        }
    }
    
    //获取节点指定标签名的子节点
    element.element(标签名);
    //获取节点指定标签名的子节点的text
    element.elementText(标签名);
    //获取节点指定属性名的属性
    element.attribute(属性名);
    //获取节点指定属性名的属性值
    element.attributeValue(属性名);
    

    相关文章

      网友评论

        本文标题:Java22dom4j解析XML

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