通常我们在项目开发的过程中经常要操作到xml文件,在JAVA这边,我们会很自然的联想到Dom4J这个apache的开源插件,那么我们使用Dom4J如何来读取xml文件呢?下面我们来看看以下4种方法

1.第一种方法:使用dom4j 中saxreader 获取Document容器,利用此容器的elementIterator读取xml文件

public static void readXML() throws DocumentException{

	// 获取读取xml的对象。
SAXReader sr = new SAXReader();
// 得到xml所在位置。然后开始读取。并将数据放入doc中
Document doc = sr.read("src/com/sinojava/EMP.xml");
// 向外取数据,获取xml的根节点。
Element el_root = doc.getRootElement();
// 从根节点下依次遍历,获取根节点下所有子节点
Iterator it = el_root.elementIterator(); // 遍历该子节点
while(it.hasNext()){
// 再获取该子节点下的子节点
Object o = it.next();
Element el_row = (Element)o;
String s = el_row.getText(); Iterator it_row = el_row.elementIterator(); // 遍历节点
while(it_row.hasNext()){
// 获取该节点下的所有数据。
Element el_ename = (Element)it_row.next();
System.out.println(el_ename.getText());
}
}
}

2.第二种方法:使用elements方法进行xml的读取,相当于条件查询,可以根据不同的节点,利用for循环查询该节点下所有的数据。

public static void readXML02() throws DocumentException{
// 获取读取方式
SAXReader sr = new SAXReader();
// 读取xml文件,并且将数据全部存放到Document中
Document doc = sr.read("src/com/sinojava/EMP.xml");
// 获取根节点
Element root = doc.getRootElement();
// 根据根节点,将根节点下 row中的所有数据放到list容器中。
List list = root.elements("ROW"); // 这种遍历方式,是jdk1.5以上的版本支持的遍历方式
for(Object obj:list){
Element row = (Element)obj; // 获取ENAME节点下所有的内容,存入list_row容器中
List list_row = row.elements("ENAME");
for(Object objempno:list_row){
Element el_empno = (Element)objempno;
// 获取节点下的数据。
System.out.println(el_empno.getName()+": "+el_empno.getText());
}
}
}

3. 第三种方法:使用适配器来完成xml的读取。

 public static void readXML04() throws DocumentException{

	 SAXReader sr = new SAXReader();
Document doc = sr.read("src/com/sinojava/EMP.xml");
// 使用观察器的子类,来完成对xml文件的读取。
doc.accept(new VisitorSupport() {
// 利用观察期进行xml的读取。
public void visit(Element el) {
System.out.println(el.getName()+": "+el.getText());
}
});
}

4.第四种方法:使用selectNodes读取xml文件

public static void readXML05(String elementpath) throws DocumentException{
SAXReader sr = new SAXReader();
Document doc = sr.read("src/com/sinojava/EMP.xml");
// 使用selectNodes获取所要查询xml的节点。
List list = doc.selectNodes(elementpath);
// 遍历节点,获取节点内数据。
for(Object obj:list){
Element el = (Element)obj;
System.out.println(el.getText());
}
}

本站文章为宝宝巴士 SD.Team原创,转载务必在明显处注明:(作者官方网站:宝宝巴士)

转载自【宝宝巴士SuperDo团队】原文链接: http://www.cnblogs.com/superdo/p/50080313.html

最新文章

  1. 自己用C语言写dsPIC / PIC24 serial bootloader
  2. location url 反向代理到来机的其它端口 gitlab
  3. 《C#本质论》读书笔记(14)支持标准查询操作符的集合接口
  4. youtube不显示其他人头像
  5. Mac OS X上安装 Ruby运行环境
  6. C++三种内存分配方式
  7. 【转】MySql数据库--mysql_real_escape_string()函数
  8. HW3.4
  9. python - zipfile
  10. 目前比较流行的Python科学计算发行版
  11. STL非变易算法 - STL算法
  12. Git和Github的配合使用
  13. java 多线程基础
  14. Redis[三] @Hash 哈希
  15. JSONP(Json with padding)
  16. 论文笔记:Cross-Domain Visual Matching via Generalized Similarity Measure and Feature Learning
  17. oracle 关于房贷计算过程
  18. 洗礼灵魂,修炼python(91)-- 知识拾遗篇 —— pymysql模块之python操作mysql增删改查
  19. python + MySql 基本操作
  20. ios 逆向编程(环境搭建)

热门文章

  1. speedtest 测试服务器上传下载速度
  2. Java并发编程实战 03互斥锁 解决原子性问题
  3. maven的pom.xml配置文件相关依赖jar包
  4. FOC 转子初始位置检测(图文详解)
  5. ubuntu文件系统修改( for arm)
  6. vue 下拉刷新实现
  7. 华为的快服务智慧平台是牛皮还是牛B?
  8. Mybatis 快速入门(XML方式)第一天
  9. springData表关系:一对多
  10. 以前的一些word的整理