站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        四種使用dom4j讀取xml文件的方式

        四種使用dom4j讀取xml文件的方式

        以下是四種讀取xml文件的方式,每種都有自己的用處。這是我在寫日志管理器的時(shí)候查找到的。希望能給大家?guī)椭?/p>

        首先我們先給出一個(gè)簡(jiǎn)單的xml文件

        <?xml version="1.0" ?> <ROWDATA>  <ROW>   <C0>1</C0>   <EMPNO>7891</EMPNO>   <ENAME>sdffff</ENAME>   <JOB>job</JOB>   <MGR></MGR>   <HIREDATE>2010-1-1</HIREDATE>   <SAL>5000.00</SAL>   <COMM>1000.00</COMM>   <DEPTNO></DEPTNO> </ROW>  <ROW>   <C0>2</C0>   <EMPNO>7369</EMPNO>   <ENAME>SMITH</ENAME>   <JOB>CLERK</JOB>   <MGR>7902</MGR>   <HIREDATE>1980-12-17</HIREDATE>   <SAL>800.00</SAL>   <COMM></COMM>   <DEPTNO>20</DEPTNO> </ROW>  </ROWDATA>

        第一種:

        /**   * 使用dom4j 中saxreader 獲取Document容器,利用此容器的elementIterator讀取xml文件   */  public static void readXML() throws DocumentException{      SAXReader sr = new SAXReader();//獲取讀取xml的對(duì)象。   Document doc = sr.read("src/com/sinojava/EMP.xml");//得到xml所在位置。然后開始讀取。并將數(shù)據(jù)放入doc中   Element el_root = doc.getRootElement();//向外取數(shù)據(jù),獲取xml的根節(jié)點(diǎn)。   Iterator it = el_root.elementIterator();//從根節(jié)點(diǎn)下依次遍歷,獲取根節(jié)點(diǎn)下所有子節(jié)點(diǎn)      while(it.hasNext()){//遍歷該子節(jié)點(diǎn)        Object o = it.next();//再獲取該子節(jié)點(diǎn)下的子節(jié)點(diǎn)    Element el_row = (Element)o;    String s = el_row.getText();     Iterator it_row = el_row.elementIterator();        while(it_row.hasNext()){//遍歷節(jié)點(diǎn)          Element el_ename = (Element)it_row.next();//獲取該節(jié)點(diǎn)下的所有數(shù)據(jù)。     System.out.println(el_ename.getText());    }    //System.out.println(o);   }     }

        第二種:;

        /**   * 使用elements方法進(jìn)行xml的讀取,相當(dāng)于條件查詢,可以根據(jù)不同的節(jié)點(diǎn),利用for循環(huán)查詢?cè)摴?jié)點(diǎn)下所有的數(shù)據(jù)。   * @throws DocumentException   */  public static void readXML02() throws DocumentException{      SAXReader sr = new SAXReader();//獲取讀取方式   Document doc = sr.read("src/com/sinojava/EMP.xml");//讀取xml文件,并且將數(shù)據(jù)全部存放到Document中   Element root = doc.getRootElement();//獲取根節(jié)點(diǎn)      List list = root.elements("ROW");//根據(jù)根節(jié)點(diǎn),將根節(jié)點(diǎn)下 row中的所有數(shù)據(jù)放到list容器中。   for(Object obj:list){//這種遍歷方式,是jdk1.5以上的版本支持的遍歷方式    Element row = (Element)obj;    List list_row = row.elements("ENAME");//獲取ENAME節(jié)點(diǎn)下所有的內(nèi)容,存入list_row容器中        for(Object objempno:list_row){          Element el_empno = (Element)objempno;          System.out.println(el_empno.getName()+": "+el_empno.getText());//獲取節(jié)點(diǎn)下的數(shù)據(jù)。         }   }  }

        第三種:

        /**   * 使用適配器來(lái)完成xml的讀取。   * @param args   * @throws DocumentException   */  public static void readXML04() throws DocumentException{      SAXReader sr = new SAXReader();   Document doc = sr.read("src/com/sinojava/EMP.xml");      doc.accept(new VisitorSupport() {//使用觀察器的子類,來(lái)完成對(duì)xml文件的讀取。        public void visit(Element el) {//利用觀察期進(jìn)行xml的讀取。          System.out.println(el.getName()+": "+el.getText());     }       });  }

        第四種:

        /**   * 使用selectNodes讀取xml文件   * @param args   * @throws DocumentException   */  public static void readXML05(String elementpath) throws DocumentException{      SAXReader sr = new SAXReader();   Document doc = sr.read("src/com/sinojava/EMP.xml");      List list = doc.selectNodes(elementpath);//使用selectNodes獲取所要查詢xml的節(jié)點(diǎn)。      for(Object obj:list){//遍歷節(jié)點(diǎn),獲取節(jié)點(diǎn)內(nèi)數(shù)據(jù)。        Element el = (Element)obj;    System.out.println(el.getText());   }     }

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 久久精品国产一区二区三区 | 久久99国产精品久久| 国产成人精品综合在线观看 | 无码精品蜜桃一区二区三区WW| 麻豆精品久久精品色综合| 亚洲精品国产成人片| 精品人妻伦九区久久AAA片69| 国产精品视频一区国模私拍 | 精品久久久久久久中文字幕 | 亚洲日韩精品一区二区三区无码| 国产精品无码永久免费888| 动漫精品专区一区二区三区不卡| 全球AV集中精品导航福利| 亚洲国产精品毛片av不卡在线| 国产午夜精品理论片免费观看| 久久精品视频网| 97精品国产91久久久久久| 日韩精品少妇无码受不了| 亚洲精品456播放| 亚洲av无码国产精品色在线看不卡 | 在线观看国产精品日韩av| 日本精品中文字幕| 奇米精品视频一区二区三区| 亚洲欧美日韩久久精品| 人人妻人人澡人人爽精品欧美| 国产天天综合永久精品日| 国产成人AV无码精品| 青青青青久久精品国产h| 老司机国内精品久久久久| 四虎国产精品永久一区| 久久成人影院精品777| 500av大全导航精品| 996久久国产精品线观看| 国产成人精品一区二区秒拍 | 亚洲精品美女久久777777| 亚洲精品国产福利一二区| 亚洲中文久久精品无码| 一本一本久久A久久综合精品| 亚洲av永久无码精品国产精品| 亚洲精品少妇30p| 国产精品高清一区二区三区|