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

        四種使用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號
        主站蜘蛛池模板: 久久久精品视频免费观看| 亚洲国产综合精品一区在线播放| 国产精品va久久久久久久| 亚洲Av永久无码精品三区在线| www.精品| 国产2021精品视频免费播放| 亚洲精品国产成人片| 久久精品国产清自在天天线| 国产av无码专区亚洲国产精品| 91精品欧美综合在线观看| 亚洲AV永久无码精品| 欧美国产成人精品一区二区三区| 99久久亚洲综合精品网站| 久久免费精品视频| 国产成人精品天堂| 精品少妇无码AV无码专区| 中文字幕久久精品无码| 男女男精品网站免费观看| 精品人妻少妇一区二区| 国产精品第六页| 国产精品无码久久四虎| 99热成人精品国产免男男| 91精品日韩人妻无码久久不卡| 99精品高清视频一区二区| 99久久久精品免费观看国产| 久久香蕉超碰97国产精品 | 亚洲第一永久AV网站久久精品男人的天堂AV| 亚洲精品国产成人99久久| 国产精品一级香蕉一区| 国产精品天天影视久久综合网| 99热国内精品| 久久99国产精品一区二区| 欧美视频精品一区二区三区| 91精品国产成人网在线观看| 99热这里只有精品6国产免费| 国产精品1024视频| 精品精品国产国产| 人妻无码精品久久亚瑟影视| 亚洲精品无码久久久久AV麻豆| 亚洲欧洲成人精品香蕉网| 午夜精品久久久久久中宇|