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

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

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

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

        首先我們先給出一個簡單的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的根節(jié)點。   Iterator it = el_root.elementIterator();//從根節(jié)點下依次遍歷,獲取根節(jié)點下所有子節(jié)點      while(it.hasNext()){//遍歷該子節(jié)點        Object o = it.next();//再獲取該子節(jié)點下的子節(jié)點    Element el_row = (Element)o;    String s = el_row.getText();     Iterator it_row = el_row.elementIterator();        while(it_row.hasNext()){//遍歷節(jié)點          Element el_ename = (Element)it_row.next();//獲取該節(jié)點下的所有數據。     System.out.println(el_ename.getText());    }    //System.out.println(o);   }     }

        第二種:;

        /**   * 使用elements方法進行xml的讀取,相當于條件查詢,可以根據不同的節(jié)點,利用for循環(huán)查詢該節(jié)點下所有的數據。   * @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();//獲取根節(jié)點      List list = root.elements("ROW");//根據根節(jié)點,將根節(jié)點下 row中的所有數據放到list容器中。   for(Object obj:list){//這種遍歷方式,是jdk1.5以上的版本支持的遍歷方式    Element row = (Element)obj;    List list_row = row.elements("ENAME");//獲取ENAME節(jié)點下所有的內容,存入list_row容器中        for(Object objempno:list_row){          Element el_empno = (Element)objempno;          System.out.println(el_empno.getName()+": "+el_empno.getText());//獲取節(jié)點下的數據。         }   }  }

        第三種:

        /**   * 使用適配器來完成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的節(jié)點。      for(Object obj:list){//遍歷節(jié)點,獲取節(jié)點內數據。        Element el = (Element)obj;    System.out.println(el.getText());   }     }

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 日韩精品人妻av一区二区三区| 无码久久精品国产亚洲Av影片| 亚洲国产精品尤物yw在线| 99热这里只有精品在线| 在线精品亚洲一区二区| 国产精品亚洲玖玖玖在线观看| 99国产精品久久久久久久成人热| 中文字幕九七精品乱码 | 国产成人精品久久一区二区三区av| 日韩精品久久无码中文字幕| 欧美成人精品欧美一级乱黄一区二区精品在线| 精品国产欧美另类一区| 国精品无码一区二区三区左线| 最新精品亚洲成a人在线观看| 精品无码国产污污污免费网站国产 | 亚洲欧洲精品成人久久曰影片| 精品偷自拍另类在线观看丰满白嫩大屁股ass| 久久96国产精品久久久| 国产成人精品男人的天堂538| 国产日产韩国精品视频| 日产精品一线二线三线芒果| 亚洲精品国产美女久久久| 亚洲精品无码久久不卡| 日本一区二区三区精品国产 | 国产区精品高清在线观看 | 99国产精品国产精品九九| 久久99国产精品尤物| 日韩精品久久久久久免费| 亚洲精品无码久久久久sm| 亚洲精品无码久久久| 亚洲精品岛国片在线观看| 亚欧洲精品在线视频免费观看 | 欧美亚洲另类精品第一页 | 国内精品久久久久国产盗摄| 国产精品无码素人福利| 国产精品免费αv视频| 国产一区二区三区欧美精品| 精品国产一区二区三区在线观看 | 精品少妇无码AV无码专区| 国产亚洲精品a在线无码| 国产精品特级毛片一区二区三区|