• 递归遍历所有xml的节点及子节点


    import java.io.File;
    import java.util.List;
    
    import org.dom4j.Attribute;
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    
    /**
     * 遍历xml所有节点(包括子节点下还有子节点多层嵌套)
     */
    public class TestXML {
    
        public static void main(final String[] args) {
            final TestXML test = new TestXML();
            try {
                test.testGetRoot();
            } catch (final Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
        /**
         * 获取文件的xml对象,然后获取对应的根节点root
         */
        public void testGetRoot() throws Exception {
            final SAXReader sax = new SAXReader();// 创建一个SAXReader对象
            final File xmlFile = new File("C:\Users\.yang\Desktop\ss.xml");// 根据指定的路径创建file对象
            final Document document = sax.read(xmlFile);// 获取document对象,如果文档无节点,则会抛出Exception提前结束
            final Element root = document.getRootElement();// 获取根节点
            getNodes(root);// 从根节点开始遍历所有节点
    
        }
    
        /**
         * 从指定节点Element node开始,递归遍历其所有子节点
         */
        public void getNodes(final Element node) {
            System.out.println("-------开始新节点-------------");
    
            // 当前节点的名称、文本内容和属性
            System.out.println("当前节点名称:" + node.getName());// 当前节点名称
            System.out.println("当前节点的内容:" + node.getTextTrim());// 当前节点内容
            final List<Attribute> listAttr = node.attributes();// 当前节点的所有属性
            for (final Attribute attr : listAttr) {// 遍历当前节点的所有属性
                final String name = attr.getName();// 属性名称
                final String value = attr.getValue();// 属性的值
                System.out.println("属性名称:" + name + "---->属性值:" + value);
            }
    
            // 递归遍历当前节点所有的子节点
            final List<Element> listElement = node.elements();// 所有一级子节点的list
            for (final Element e : listElement) {// 遍历所有一级子节点
                getNodes(e);// 递归
            }
        }
    }

    参考文章:https://blog.csdn.net/sidihuo/article/details/47318723

  • 相关阅读:
    Android权限大全(链接地址整理)
    Android6.0运行时权限(基于RxPermission开源库)
    Android6.0机型上调用系统相机拍照返回的resultCode值始终等于0的问题
    使用AccessibilityService模拟点击事件失败的分析
    Android混淆打包配置总结
    okhttputils开源库的混淆配置(Eclipse)
    Android布局中的空格以及占一个汉字宽度的空格,实现不同汉字字数对齐
    java开发者大会:总结
    JAVA开发者大会:拍拍贷MQ系统原理与应用
    消息总线真的能保证幂等?
  • 原文地址:https://www.cnblogs.com/longronglang/p/10555626.html
Copyright © 2020-2023  润新知