[java开发篇][dom4j模块] 遍历xml文件
http://blog.csdn.net/chenleixing/article/details/44353491
在android studio 导入dom4j库(build-gradle(Moudle:***)
- dependencies {
- compile fileTree(dir: 'libs', include: ['*.jar'])
- testCompile 'junit:junit:4.12'
- androidTestCompile 'com.android.support:support-annotations:24.0.0'
- androidTestCompile 'com.android.support.test:runner:0.4.1'
- androidTestCompile 'com.android.support.test:rules:0.4.1'
- compile 'com.android.support:appcompat-v7:24.0.0'
- androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
- compile 'dom4j:dom4j:20040902.021138'
- }
被测试的xml文件test.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <root>
- <user editor="chenleixing" date="2015-02-15">
- <name>张三</name>
- <year>24</year>
- <sex>男</sex>
- </user>
- <user editor="zhangxiaochao" date="2015-02-15">
- <name>李四</name>
- <year>24</year>
- <sex>女</sex>
- </user>
- </root>
- /**
- * 获取文件的document对象,然后获取对应的根节点
- * @author
- */
- @Test
- public void testGetRoot() throws Exception{
- SAXReader sax=new SAXReader();//创建一个SAXReader对象
- File xmlFile=new File("d:\\test.xml");//根据指定的路径创建file对象
- Document document=sax.read(xmlFile);//获取document对象,如果文档无节点,则会抛出Exception提前结束
- Element root=document.getRootElement();//获取根节点
- this.getNodes(root);//从根节点开始遍历所有节点
- }
- /**
- * 从指定节点开始,递归遍历所有子节点
- * @author*/
- public void getNodes(Element node){
- System.out.println("--------------------");
- //当前节点的名称、文本内容和属性
- System.out.println("当前节点名称:"+node.getName());//当前节点名称
- System.out.println("当前节点的内容:"+node.getTextTrim());//当前节点名称
- List<Attribute> listAttr=node.attributes();//当前节点的所有属性的list
- for(Attribute attr:listAttr){//遍历当前节点的所有属性
- String name=attr.getName();//属性名称
- String value=attr.getValue();//属性的值
- System.out.println("属性名称:"+name+"属性值:"+value);
- }
- //递归遍历当前节点所有的子节点
- List<Element> listElement=node.elements();//所有一级子节点的list
- for(Element e:listElement){//遍历所有一级子节点
- this.getNodes(e);//递归
- }
- }
- --------------------
- 当前节点名称:root
- 当前节点的内容:
- --------------------
- 当前节点名称:user
- 当前节点的内容:
- 属性名称:editor属性值:chenleixing
- 属性名称:date属性值:2015-02-15
- --------------------
- 当前节点名称:name
- 当前节点的内容:张三
- --------------------
- 当前节点名称:year
- 当前节点的内容:24
- --------------------
- 当前节点名称:sex
- 当前节点的内容:男
- --------------------
- 当前节点名称:user
- 当前节点的内容:
- 属性名称:editor属性值:zhangxiaochao
- 属性名称:date属性值:2015-02-15
- --------------------
- 当前节点名称:name
- 当前节点的内容:李四
- --------------------
- 当前节点名称:year
- 当前节点的内容:24
- --------------------
- 当前节点名称:sex
- 当前节点的内容:女
[java开发篇][dom4j模块] 遍历xml文件的更多相关文章
- [java开发篇][dom4j模块]遍历,解析xml
package com.softwinner.performance.benchmark; /** * Created by Administrator on 2017/7/21. */ import ...
- [java开发篇][dom模块] 遍历解析xml
http://blog.csdn.net/andie_guo/article/details/24844351 XML DOM节点树 XML DOM将XML文档作为树结构,树结构称为一个节点树.所有的 ...
- Java中使用DOM4J来生成xml文件和解析xml文件
一.前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理 ...
- dom4j加载xml文件
## dom4j加载xml文件 ``` // 1. 加载xml文件 InputStream is = MyTest.class.getResourceAsStream("user.xml&q ...
- C#遍历XML文件动态加载菜单
通过遍历XML文件动态加载菜单,顺便利用WebBrowser控件实现一个简单的桌面浏览器 效果如下: 代码如下: XMLFile1.xml <?xml version="1.0&quo ...
- Java自动化测试框架-12 - TestNG之xml文件详解篇 (详细教程)
1.简介 现在这篇,我们来学习TestNG.xml文件,前面我们已经知道,TestNG就是运行这个文件来执行测试用例的.通过本篇,你可以进一步了解到:这个文件是配置测试用例,测试套件.简单来说,利用这 ...
- DOM4J方式解析XML文件
dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory dom4j是一个简单的开源库,用于处理XML. X ...
- 使用dom4j工具包对xml文件解析
xml文件 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http: ...
- dom4j如何解析XML文件
最近在 一些对xml文件的操作,下面简单写一个dom4j解析xml文件并将其封装到一个javabean中的例子,只是具有针对性的,不是通用的,仅供参考哦~~ 首先说:dom4j是一个java的XML ...
随机推荐
- HoloLens | 世界的每一次变化,其实都提前打好了招呼
新年,对灯发誓——不说老话,说新鲜事. 佛经上说:世间唯一永恒不变的,就是永远在变化. 130年前(说好的不说老话呢),世界上第一辆汽车在德国发出第一声轰鸣,世界变了: 现在,汽车已遍及世界,颜值.性 ...
- Java之栈空间和堆空间
1.变量的命名 (1)由字母,数字和下划线构成,首字母以字母或下划线开头 (2)变量的命名遵循见名知义 (3)Java变量命名建议不用中文 (4)变量名首字母建议不用大写字母开头 (5)用驼峰命名法命 ...
- pc端常见布局---垂直居中布局 单元素不定高
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Android商城开发系列(四)——butterknife的使用
在上一篇博客:Android商城开发系列(三)——使用Fragment+RadioButton实现商城底部导航栏实现商城的底部导航栏时,里面用到了butterknife,今天来讲解一下的butterk ...
- UVALive 3523 Knights of the Round Table 圆桌骑士 (无向图点双连通分量)
由于互相憎恨的骑士不能相邻,把可以相邻的骑士连上无向边,会议要求是奇数,问题就是求不在任意一个简单奇圈上的结点个数. 如果不是二分图,一定存在一个奇圈,同一个双连通分量中其它点一定可以加入奇圈.很明显 ...
- Distinct Values(贪心)
问题 D: Distinct Values 时间限制: 1 Sec 内存限制: 128 MB提交: 13 解决: 5[提交] [状态] [讨论版] [命题人:admin] 题目描述 Chiaki ...
- 《毛毛虫团队》第七次作业:团队项目设计完善&编码
一:实验名称:团队项目设计完善&编码 二:实验目的与要求 掌握软件编码实现的工程要求. 三:实验步骤 任务一:团队软件项目设计完善: 任务二:团队软件项目编码实现: 任务三:在团队博客发布博文 ...
- 利用Vue.js实现登录/登出以及JWT认证
JSON Web Token 入门教程:http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html 后端代码地址:https ...
- 洛谷P2347 砝码称重
题目 貌似是某年提高组签到题,六重循环零压力AC,差点怒踩std 但本蒟蒻决定写正解——多重背包,果断20分 原因是写错了状态转移方程...神才知道我咋过的样例和两个测试点 扯远了 多重背包 简单说一 ...
- Java--equals和 == 的比较和equals()、HashCode()的重写
一. equals和 == 的比较 1.== 运算符 ① == 如果比较的是基本数据类型,则比较的是值. ② == 如果比较的是引用数据类型,则比较的是地址值. 2.equals ①它属于java.l ...