第一次接触dom4j的时候,感觉这个东西很神秘,因为之前虽然知道XML文件吧,但从来没有用过,一直感觉XML肯定不好操作。当得知,dom4j可以很容易的操作读取XML文件时,不免有些好奇,那么,用dom4j读取XML文件到底有多简单呢?让我带大家去看一下。

首先看一下XML文件的结构:

<?xml version="1.0" encoding="utf-8"?>
<ACCESOS>
<item>
<SOCIO>
<NUMERO>00045050</NUMERO>
<REPOSICION>0</REPOSICION>
<NOMBRE>MOISES MORENO</NOMBRE>
<TURNOS>
<LU>T1</LU>
<MA>T2</MA>
<MI>T3</MI>
<JU>T4</JU>
<VI>T5</VI>
<SA>T6</SA>
<DO>T7</DO>
</TURNOS>
</SOCIO>
</item>
<item>
<SOCIO>
<NUMERO>00045051</NUMERO>
<REPOSICION>0</REPOSICION>
<NOMBRE>RUTH PENA</NOMBRE>
<TURNOS>
<LU>S1</LU>
<MA>S2</MA>
<MI>S3</MI>
<JU>S4</JU>
<VI>S5</VI>
<SA>S6</SA>
<DO>S7</DO>
</TURNOS>
</SOCIO>
</item>
</ACCESOS>

用dom4j读取XML文件只需要两步:

第一步:引入jar文件,具体引入dom4j-1.6.1.jar文件和jaxen-1.1-beta-6.jar文件

第二步:简单书写几行代码,具体代码如下:

import java.io.File;
import java.util.Iterator;
import java.util.List; import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader; public class ReadXML {
public static void main(String[] arg){
try {
//XML文件在E:/test01.XML
Document doc = new SAXReader().read(new File("E:/test01.XML"));
List<Element> itemList = doc.selectNodes("/ACCESOS/item/SOCIO");
for (Iterator<Element> iter = itemList.iterator(); iter.hasNext();){
Element element = iter.next();
System.out.println("NUMERO =" + element.elementText("NUMERO"));
}
} catch (DocumentException e) {
e.printStackTrace();
}
}
}

OK,现在已经可以读取出XML文件中的内容了,让我们看一下结果是否正确:

NUMERO =00045050
NUMERO =00045051

第一次接触dom4j的时候,感觉这个东西很神秘,因为之前虽然知道XML文件吧,但从来没有用过,一直感觉XML肯定不好操作。当得知,dom4j可以很容易的操作读取XML文件时,不免有些好奇,那么,用dom4j读取XML文件到底有多简单呢?让我带大家去看一下。

Perfect!结果完全正确。到此为止,我们仅仅用了几行代码,XML中的数据就已经被封装到了对象中,取得XML中的数据与取数组中的数据几乎没有任何区别,这就是dom4j 的强大之处。有了dom4j,再次操作XML文件时,心不烦了,脑袋不大了,一口气读十个XML文件都是小case啦。

人呢,都有一种对未知的恐惧心理,就像初次接触dom4j吧,什么dom4j、XPath啦,这些新名词突然出现在我们面前,立马就有种要躲开的潜意识。其实呢,它也就是这几个新名词而已。很多时候,阻挡我们前进的并不是那些未知的东西,而我们对未知的恐惧心理。只要我们战胜了这种恐惧心理,你会收到意想不到的惊喜。

当今社会,尤其是计算机的世界,如果你一直抵触新的东西,那么,很快你就会被淘汰,就会变为古董。与时俱进的思想在计算机的世界里尤为突出。生活在这样的时代,学习要是不讲究点策略,那你学的都不一定有发展快。在这种环境下,如果你遇到新知识就去钻研,就想弄个一清二楚,那么,在动物世界跑步大赛中,你的学习速度就可以跟蜗牛媲美了。所以呢,好多东西,会用就可以了,要善假于物,要学会站在巨人的肩膀上考虑问题,囫囵吞枣的学习方法真的很实用,很有效果。当然,我并不是否认钻研的重要性,探索的精神还是必不可少的,但是呢?如果我们用那些探索没必要东西花的时间来考虑“什么东西该囫囵吞枣的学,什么东西应该去钻研”,我感觉这样更利于我们的发展。

“囫囵吞枣”和“钻研、探索”之间,平衡就好。与学习某些具体的技术相比,学习找到这个平衡点更为重要。

道理很坎坷,兄弟们,加油啦!

使用dom4j 读取XML文件的更多相关文章

  1. DOM4J读取XML文件

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

  2. dom4j读取XML文件内容

    <?xml version="1.0" encoding="UTF-8"?> <RESULT> <VALUE> <NO ...

  3. 利用dom4j读取xml文件

    对于xml文件的读取,其实有很多方法,例如:SAX实现方法,DOM4J实现方法 ,DOM 实现方法,JDOM实现方法 等等. 下面,我就说下dom4j的读取方法: 1.首先,肯定要引入第三方jar包. ...

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

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

  5. 菜鸟学Java(八)——dom4j详解之读取XML文件

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源 ...

  6. java Domj4读取xml文件

    先概括,再以代码形式给出. 获取节点: Iterator  Element.nodeIterator();  //获取当前标签节点下的所有子节点 获取 标签: Element Document.get ...

  7. 使用DOM4J解析XMl文件与读取XML文件

    XML文件 <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book id ...

  8. java DOM4J 读取XML

    最近学习Java,在处理XML文档的时候,查阅相关资料,发现了DOM4J这个jre库,相对C#的XML处理来说,功能还算是跟得上 下面展示一篇我自己写的一个XML读取测试 import java.ut ...

  9. 【dom4j xml】使用dom4j处理XML文件--测试过程遇到的问题

    首先 关于dom4j的API,有如下: 当然  其中的实体引用有以下: 测试使用环境: 使用Maven搭建web环境,pom.xml文件配置如下: <project xmlns="ht ...

随机推荐

  1. iOS中@class #import #include 简介

    [转载自:http://blog.csdn.net/chengwuli125/article/details/9705315] 一.解析        很多刚开始学习iOS开发的同学可能在看别人的代码 ...

  2. [置顶] iOS 名片识别代码

    采用的是惠普图片识别SDK.本代码可以识别中文.代码改自 http://www.cocoachina.com/bbs/read.php?tid=123463 . 图片就不贴了,123463中的效果是可 ...

  3. 关于C++函数思考1(缺省的六大函数)

    我们知道大神们在设计C++时候就给C++有六个默认的函数,所谓默认就是,无需我们这些程序猿们动手去写,仅仅要你在将类实例化.即创建一个对象,在利用对象进行数据操作时候,就会编译器自己主动调用默认的函数 ...

  4. SQL 约束解说

    SQL 约束解说 2009-04-27 09:29 约束主要包含: NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK DEFAULT 1.not null : ...

  5. 4道过滤菜鸟的iOS面试题

    网上已经有很多针对各种知识点的面试题,面试时有些人未必真正理解也能通过背题看上去很懂.我自己总结了4道面试题,好快速的判断这个人是否是一个合格的工程师,欢迎大家点评. 1.struct和class的区 ...

  6. Python访问sqlite3数据库取得dictionary的正路!

    [引子] 很多人都知道,Python里是内置了很好用的sqlite3的.但这个库有个缺陷,在执行fetchall()/fetchone()等方法后,得到的是一个tuple.以前吧,做自己的小项目,tu ...

  7. ubuntu 安装 flash player

    ubuntu 软件中心里的 flash , 虽说写的支持 chrome , 但安装总不管用 可运行以下两个命令, 再重启 chrome 浏览器 (注意,一定要把打开的浏览器全部关闭, 再打开才可以) ...

  8. 怎样找Android里自带的数据库?

    首先先让它显示出来. 窗口window下的Show View 下的File Explorer(other里), 这时File Explorer窗口 就会显示出来,下一步我们找到data下的data,然 ...

  9. COGS 908 校园网

    /* Tarjan缩点之后 强联通分量建图 统计每个强联通分量的出入度 第一问就是入度为0的 强联通分量的个数 第二问 为了高效的使每个强联通分量都有出入度 要把出度为零的强联通分量连到入度为零的点上 ...

  10. http2.0

    HTTP2.0性能增强的核心:二进制分帧 HTTP 2.0最大的特点: 不会改动HTTP 的语义,HTTP 方法.状态码.URI 及首部字段,等等这些核心概念上一如往常,却能致力于突破上一代标准的性能 ...