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

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

  1. public static void readXML() throws DocumentException{
  2.  
  3. // 获取读取xml的对象。
  4. SAXReader sr = new SAXReader();
  5. // 得到xml所在位置。然后开始读取。并将数据放入doc中
  6. Document doc = sr.read("src/com/sinojava/EMP.xml");
  7. // 向外取数据,获取xml的根节点。
  8. Element el_root = doc.getRootElement();
  9. // 从根节点下依次遍历,获取根节点下所有子节点
  10. Iterator it = el_root.elementIterator();
  11.  
  12. // 遍历该子节点
  13. while(it.hasNext()){
  14. // 再获取该子节点下的子节点
  15. Object o = it.next();
  16. Element el_row = (Element)o;
  17. String s = el_row.getText();
  18.  
  19. Iterator it_row = el_row.elementIterator();
  20.  
  21. // 遍历节点
  22. while(it_row.hasNext()){
  23. // 获取该节点下的所有数据。
  24. Element el_ename = (Element)it_row.next();
  25. System.out.println(el_ename.getText());
  26. }
  27. }
  28. }

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

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

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

  1. public static void readXML04() throws DocumentException{
  2.  
  3. SAXReader sr = new SAXReader();
  4. Document doc = sr.read("src/com/sinojava/EMP.xml");
  5. // 使用观察器的子类,来完成对xml文件的读取。
  6. doc.accept(new VisitorSupport() {
  7. // 利用观察期进行xml的读取。
  8. public void visit(Element el) {
  9. System.out.println(el.getName()+": "+el.getText());
  10. }
  11. });
  12. }

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

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

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

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

[JavaWeb基础] 030.dom4j读取xml的4种方法的更多相关文章

  1. [JavaWeb基础] 031.dom4j写入xml的方法

    上一篇我们讲述了dom4j读取xml的4种方法,甚是精彩,那么怎么样写入xml呢?我们直接看下源码实现. public static void main(String[] args) throws E ...

  2. C#中常用的读取xml的几种方法(转)

    本文完全来源于http://blog.csdn.net/tiemufeng1122/article/details/6723764,仅作个人学习之用. XML文件是一种常用的文件格式,例如WinFor ...

  3. 使用dom4j读取xml连接数据库与之单例模式

    使用dom4j读取xml ,加入jar包 dom4j-1.6.1.jar jaxen-1.1-beta-6.jar public class XmlConfigReader { //懒汉式,延迟加载 ...

  4. RSS阅读器(一)——dom4j读取xml(opml)文件

    接触java不久,偶有收获,最近想做一个web版RSS阅读器来锻炼一下.手头有几个从不同版本的foxmail中导出的opml文件,大家应该都知道,opml文件就是xml格式的.那么就先从这里入手,练习 ...

  5. 使用dom4j 读取XML文件

    第一次接触dom4j的时候,感觉这个东西很神秘,因为之前虽然知道XML文件吧,但从来没有用过,一直感觉XML肯定不好操作.当得知,dom4j可以很容易的操作读取XML文件时,不免有些好奇,那么,用do ...

  6. DOM4J读取XML文件

    最近在做DRP的项目,其中涉及到了读取配置文件,用到了DOM4J,由于是刚开始接触这种读取xml文件的技术,好奇心是难免的,于是在网上又找了一些资料,这里就结合找到的资料来谈一下读取xml文件的4中方 ...

  7. Java使用dom4j读取xml时报错:org.dom4j.DocumentException: Error on line 2 of document : Invalid byte 2 of 2-byte UTF-8 sequence. Nested exception: Invalid byte 2 of 2-byte UTF-8 sequence

    1.Java使用dom4j读取xml时报错: org.dom4j.DocumentException: Error on line 2 of document  : Invalid byte 2 of ...

  8. 【XML】利用Dom4j读取XML文档以及写入XML文档

    Dom4j简介 dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的.dom4j是一个十分优秀的JavaXML API,具有性能优异.功能强大和极其易使用的特点,它的性能 ...

  9. 简介C#读取XML的两种方式

    简介C#读取XML的两种方式 作者: 字体:[增加 减小] 类型:转载 时间:2013-03-03 在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型,使用DOM的 ...

随机推荐

  1. 在html中使用vue组件

    最近在维护公司的项目,当我拿到项目时,发现他用了vue. 但是~~仅仅是引用vue.js文件,整体的架构还是html那种,没有用webpack! 当时觉得~哇~原来还可以这样! 然后了解了业务逻辑和代 ...

  2. jQuery中bind()与on()绑定事件的区别

    .on()方法比.bind()方法多一个参数selector .on()的selector参数是筛选出调用.on()方法的dom元素的指定子元素,如: $("ul").on('cl ...

  3. MATLAB矩阵处理—特殊矩阵

    需要掌握 MATLAB语言中特殊矩阵 MATLAB语言中矩阵的变幻 MATLAB语言矩阵如何求值 MATLAB语言中特征值与特征向量 MATLAB语言中稀疏矩阵 2.1  特殊矩阵 如何建立矩阵? 逐 ...

  4. 201771010113 李婷华 《面向对象程序设计(java)》第七周学习总结

    一.理论知识学习部分 1.动态绑定:又称为运行时绑定.程序在运行时会自动选择调用哪个方法. 2.静态绑定:如果方法是private.static.final修饰的,或者是构造器,那么编译器能准确地判断 ...

  5. 【Scala】利用Akka的actor编程模型,实现2个进程间的通信

    文章目录 步骤 一.创建maven工程,导入jar包 二.master进程代码开发 三.worker进程代码开发 四.控制台结果 步骤 一.创建maven工程,导入jar包 <propertie ...

  6. 自己动手在Linux系统实现一个everything程序

    大家好,我是良许. 我们知道,在 Windows 下,有一款非常实用的神器,叫作 Everything ,它可以在极短的时间里,搜索出来你所想要的文件/目录,如下图示: Linux 下也有一些类似于 ...

  7. dp规划之矩阵连乘问题

    问题描述:给定n个矩阵{A1,A2,...,An},其中Ai与Ai+1是可乘的,我们要计算这n个矩阵的最少计算次数.  将多个矩阵连乘抽象为最后一次计算即两个矩阵相乘. public static v ...

  8. [zoj3596]DP(BFS)

    题意:求n的最小倍数,满足性质P:十进制的每一位上的数有m种(0<m<=10). 思路:直接枚举n的最小倍数,然后检测是否满足性质P,n一大很容易超时,并且无法判断无解的情况.巧妙的做法是 ...

  9. CTR学习笔记&代码实现5-深度ctr模型 DeepCrossing -> DCN

    之前总结了PNN,NFM,AFM这类两两向量乘积的方式,这一节我们换新的思路来看特征交互.DeepCrossing是最早在CTR模型中使用ResNet的前辈,DCN在ResNet上进一步创新,为高阶特 ...

  10. C:复试

    C语言程序设计基础知识 C语言特点 1.是一种兼有高级语言和汇编语言优点的语言 2.是一种结构化程序设计语言 3.数据类型丰富 4.具有丰富的运算符 5.具有预处理功能 合理算法的特点 1.有输入 2 ...