Dom4j解析xml⽂件-递归遍历所有节点和属性
版权声明:本⽂为博主原创⽂章,未经博主允许不得转载。 blog.csdn/chenleixing/article/details/44353491
引⾔
Dom4j是java中常⽤读取xml⽂件的⼯具,就⽅便性和性能⽅⾯,⼀定程度要优于JDK中Domcument和SAX解析的,感兴趣的童鞋可以看看这篇⽂章 ,相关jar包可免费下载:,下边我就分享⼀下⽤Dom4j对xml⽂件进⾏遍历,⼀看代码就明⽩了,注释的很详细。
被测试的xml⽂件l
<?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>
创建File,获取根节点
/**
* 获取⽂件的document对象,然后获取对应的根节点
* @author chenleixing
*/
@Test
public void testGetRoot() throws Exception{
SAXReader sax=new SAXReader();//创建⼀个SAXReader对象
File xmlFile=new File("d:\\l");//根据指定的路径创建file对象
Document ad(xmlFile);//获取document对象,如果⽂档⽆节点,则会抛出Exception提前结束
Element RootElement();//获取根节点
使用dom4j解析xml文件
}
从指定节点开始,递归遍历所有节点和属性
/**
* 从指定节点开始,递归遍历所有⼦节点
* @author chenleixing
*/
public void getNodes(Element node){
System.out.println("--------------------");
//当前节点的名称、⽂本内容和属性
System.out.println("当前节点名称:"+Name());//当前节点名称
System.out.println("当前节点的内容:"+TextTrim());//当前节点名称  List<Attribute> listAttr=node.attributes();//当前节点的所有属性的list
for(Attribute attr:listAttr){//遍历当前节点的所有属性
String Name();//属性名称
String Value();//属性的值
System.out.println("属性名称:"+name+"属性值:"+value);
}
//递归遍历当前节点所有的⼦节点
List<Element> listElement=node.elements();//所有⼀级⼦节点的list
for(Element e:listElement){//遍历所有⼀级⼦节点
}
}
输出结果
-
-------------------
当前节点名称:root
当前节点的内容:
--------------------
当前节点名称:user
当前节点的内容:
属性名称:editor属性值:chenleixing
属性名称:date属性值:2015-02-15
--------------------
当前节点名称:name
当前节点的内容:张三
-
-------------------
当前节点名称:year
当前节点的内容:24
--------------------
当前节点名称:sex
当前节点的内容:男
--------------------
当前节点名称:user
当前节点的内容:
属性名称:editor属性值:zhangxiaochao
属性名称:date属性值:2015-02-15
-
-------------------
当前节点名称:name
当前节点的内容:李四
--------------------
当前节点名称:year
当前节点的内容:24
--------------------
当前节点名称:sex
当前节点的内容:⼥
jar包免费下载
最后,认真看过的⽹友们,⼤神们,如有感觉我这个程序猿有哪个地⽅说的不对或者不妥或者你有很
好的提议或者建议或点⼦⽅法,还望您⼤恩⼤德施舍n秒的时间留下你的宝贵⽂字(留⾔),以便你,我,还有⼴⼤的程序猿们更快地成长与进步.......

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。