站長資訊網
        最全最豐富的資訊網站

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

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

        以下是四種讀取xml文件的方式,每種都有自己的用處。這是我在寫日志管理器的時候查找到的。希望能給大家幫助。

        首先我們先給出一個簡單的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的對象。   Document doc = sr.read("src/com/sinojava/EMP.xml");//得到xml所在位置。然后開始讀取。并將數據放入doc中   Element el_root = doc.getRootElement();//向外取數據,獲取xml的根節點。   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());    }    //System.out.println(o);   }     }

        第二種:;

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

        第三種:

        /**   * 使用適配器來完成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() {//使用觀察器的子類,來完成對xml文件的讀取。        public void visit(Element el) {//利用觀察期進行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的節點。      for(Object obj:list){//遍歷節點,獲取節點內數據。        Element el = (Element)obj;    System.out.println(el.getText());   }     }

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 久久99国产综合精品免费| 亚洲第一精品福利| 久久成人国产精品二三区| 久久国产精品一区| 免费视频精品一区二区三区| 无码国内精品人妻少妇蜜桃视频| 国产线视频精品免费观看视频| sihu国产精品永久免费| 亚洲国产成人精品无码区在线观看| 国内精品久久久久久久coent| 精品国产福利第一区二区三区| 精品无码日韩一区二区三区不卡| 亚洲av午夜成人片精品电影| 国产小呦泬泬99精品| 2022国产精品最新在线| 国产精品久久久久久| 精品一区二区三区免费毛片爱| 在线精品无码字幕无码AV| 久久夜色撩人精品国产| 精品国产青草久久久久福利| 337P亚洲精品色噜噜| 国内精品手机在线观看视频| 99精品视频在线观看re| 国产精品高清一区二区三区 | 亚洲av永久无码精品国产精品| 欧美亚洲日本久久精品| 久久精品国产福利国产琪琪| 国产精品99久久精品爆乳| 88国产精品欧美一区二区三区| 91av国产精品| 白浆都出来了视频国产精品| 国产成人精品在线观看| 国产精品99精品视频网站| 国产精品无码不卡一区二区三区| 国产高清在线精品一区二区| 国产精品午夜久久| 精品国产免费一区二区三区| 麻豆精品视频在线观看| 亚洲国产精品13p| 蜜国产精品jk白丝AV网站| 国产精品美女久久久m|