欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用dom4j 读取XML文件

程序员文章站 2022-07-08 14:02:29
第一次接触dom4j的时候,感觉这个东西很神秘,因为之前虽然知道XML文件吧,但从来没有用过,一直感觉XML肯定不好操作。当得知,dom4j可以很容易的操作读取XML文件时,不免有...

第一次接触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> 

<?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(); 
        } 
    } 
} 

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 

NUMERO =00045050
NUMERO =00045051

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

 

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

 

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

 

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

 

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

 

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