http://blog.csdn.net/chenleixing/article/details/44353491

在android studio 导入dom4j库(build-gradle(Moudle:***)

  1. dependencies {
  2. compile fileTree(dir: 'libs', include: ['*.jar'])
  3. testCompile 'junit:junit:4.12'
  4. androidTestCompile 'com.android.support:support-annotations:24.0.0'
  5. androidTestCompile 'com.android.support.test:runner:0.4.1'
  6. androidTestCompile 'com.android.support.test:rules:0.4.1'
  7. compile 'com.android.support:appcompat-v7:24.0.0'
  8. androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
  9. compile 'dom4j:dom4j:20040902.021138'
  10. }

被测试的xml文件test.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <root>
  3. <user editor="chenleixing" date="2015-02-15">
  4. <name>张三</name>
  5. <year>24</year>
  6. <sex></sex>
  7. </user>
  8. <user editor="zhangxiaochao" date="2015-02-15">
  9. <name>李四</name>
  10. <year>24</year>
  11. <sex></sex>
  12. </user>
  13. </root>
  1. /**
  2. * 获取文件的document对象,然后获取对应的根节点
  3. * @author
  4. */
  5. @Test
  6. public void testGetRoot() throws Exception{
  7. SAXReader sax=new SAXReader();//创建一个SAXReader对象
  8. File xmlFile=new File("d:\\test.xml");//根据指定的路径创建file对象
  9. Document document=sax.read(xmlFile);//获取document对象,如果文档无节点,则会抛出Exception提前结束
  10. Element root=document.getRootElement();//获取根节点
  11. this.getNodes(root);//从根节点开始遍历所有节点
  12.  
  13. }
  1. /**
  2. * 从指定节点开始,递归遍历所有子节点
  3. * @author*/
  4. public void getNodes(Element node){
  5. System.out.println("--------------------");
  6.  
  7. //当前节点的名称、文本内容和属性
  8. System.out.println("当前节点名称:"+node.getName());//当前节点名称
  9. System.out.println("当前节点的内容:"+node.getTextTrim());//当前节点名称
  10. List<Attribute> listAttr=node.attributes();//当前节点的所有属性的list
  11. for(Attribute attr:listAttr){//遍历当前节点的所有属性
  12. String name=attr.getName();//属性名称
  13. String value=attr.getValue();//属性的值
  14. System.out.println("属性名称:"+name+"属性值:"+value);
  15. }
  16.  
  17. //递归遍历当前节点所有的子节点
  18. List<Element> listElement=node.elements();//所有一级子节点的list
  19. for(Element e:listElement){//遍历所有一级子节点
  20. this.getNodes(e);//递归
  21. }
  22. }
  1. --------------------
  2. 当前节点名称:root
  3. 当前节点的内容:
  4. --------------------
  5. 当前节点名称:user
  6. 当前节点的内容:
  7. 属性名称:editor属性值:chenleixing
  8. 属性名称:date属性值:2015-02-15
  9. --------------------
  10. 当前节点名称:name
  11. 当前节点的内容:张三
  12. --------------------
  13. 当前节点名称:year
  14. 当前节点的内容:24
  15. --------------------
  16. 当前节点名称:sex
  17. 当前节点的内容:男
  18. --------------------
  19. 当前节点名称:user
  20. 当前节点的内容:
  21. 属性名称:editor属性值:zhangxiaochao
  22. 属性名称:date属性值:2015-02-15
  23. --------------------
  24. 当前节点名称:name
  25. 当前节点的内容:李四
  26. --------------------
  27. 当前节点名称:year
  28. 当前节点的内容:24
  29. --------------------
  30. 当前节点名称:sex
  31. 当前节点的内容:女

[java开发篇][dom4j模块] 遍历xml文件的更多相关文章

  1. [java开发篇][dom4j模块]遍历,解析xml

    package com.softwinner.performance.benchmark; /** * Created by Administrator on 2017/7/21. */ import ...

  2. [java开发篇][dom模块] 遍历解析xml

    http://blog.csdn.net/andie_guo/article/details/24844351 XML DOM节点树 XML DOM将XML文档作为树结构,树结构称为一个节点树.所有的 ...

  3. Java中使用DOM4J来生成xml文件和解析xml文件

    一.前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理 ...

  4. dom4j加载xml文件

    ## dom4j加载xml文件 ``` // 1. 加载xml文件 InputStream is = MyTest.class.getResourceAsStream("user.xml&q ...

  5. C#遍历XML文件动态加载菜单

    通过遍历XML文件动态加载菜单,顺便利用WebBrowser控件实现一个简单的桌面浏览器 效果如下: 代码如下: XMLFile1.xml <?xml version="1.0&quo ...

  6. Java自动化测试框架-12 - TestNG之xml文件详解篇 (详细教程)

    1.简介 现在这篇,我们来学习TestNG.xml文件,前面我们已经知道,TestNG就是运行这个文件来执行测试用例的.通过本篇,你可以进一步了解到:这个文件是配置测试用例,测试套件.简单来说,利用这 ...

  7. DOM4J方式解析XML文件

    dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory dom4j是一个简单的开源库,用于处理XML. X ...

  8. 使用dom4j工具包对xml文件解析

    xml文件 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http: ...

  9. dom4j如何解析XML文件

    最近在 一些对xml文件的操作,下面简单写一个dom4j解析xml文件并将其封装到一个javabean中的例子,只是具有针对性的,不是通用的,仅供参考哦~~ 首先说:dom4j是一个java的XML ...

随机推荐

  1. HoloLens | 世界的每一次变化,其实都提前打好了招呼

    新年,对灯发誓——不说老话,说新鲜事. 佛经上说:世间唯一永恒不变的,就是永远在变化. 130年前(说好的不说老话呢),世界上第一辆汽车在德国发出第一声轰鸣,世界变了: 现在,汽车已遍及世界,颜值.性 ...

  2. Java之栈空间和堆空间

    1.变量的命名 (1)由字母,数字和下划线构成,首字母以字母或下划线开头 (2)变量的命名遵循见名知义 (3)Java变量命名建议不用中文 (4)变量名首字母建议不用大写字母开头 (5)用驼峰命名法命 ...

  3. pc端常见布局---垂直居中布局 单元素不定高

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  4. Android商城开发系列(四)——butterknife的使用

    在上一篇博客:Android商城开发系列(三)——使用Fragment+RadioButton实现商城底部导航栏实现商城的底部导航栏时,里面用到了butterknife,今天来讲解一下的butterk ...

  5. UVALive 3523 Knights of the Round Table 圆桌骑士 (无向图点双连通分量)

    由于互相憎恨的骑士不能相邻,把可以相邻的骑士连上无向边,会议要求是奇数,问题就是求不在任意一个简单奇圈上的结点个数. 如果不是二分图,一定存在一个奇圈,同一个双连通分量中其它点一定可以加入奇圈.很明显 ...

  6. Distinct Values(贪心)

    问题 D: Distinct Values 时间限制: 1 Sec  内存限制: 128 MB提交: 13  解决: 5[提交] [状态] [讨论版] [命题人:admin] 题目描述 Chiaki ...

  7. 《毛毛虫团队》第七次作业:团队项目设计完善&编码

    一:实验名称:团队项目设计完善&编码 二:实验目的与要求 掌握软件编码实现的工程要求. 三:实验步骤 任务一:团队软件项目设计完善: 任务二:团队软件项目编码实现: 任务三:在团队博客发布博文 ...

  8. 利用Vue.js实现登录/登出以及JWT认证

    JSON Web Token 入门教程:http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html 后端代码地址:https ...

  9. 洛谷P2347 砝码称重

    题目 貌似是某年提高组签到题,六重循环零压力AC,差点怒踩std 但本蒟蒻决定写正解——多重背包,果断20分 原因是写错了状态转移方程...神才知道我咋过的样例和两个测试点 扯远了 多重背包 简单说一 ...

  10. Java--equals和 == 的比较和equals()、HashCode()的重写

    一. equals和 == 的比较 1.== 运算符 ① == 如果比较的是基本数据类型,则比较的是值. ② == 如果比较的是引用数据类型,则比较的是地址值. 2.equals ①它属于java.l ...