dom4j學習轉

          1.加載XML文檔
          SAXReader reader = new SAXReader();
          Document doc = reader.read("src/book.xml");

          2.獲得根元素
          Node root = doc.getRootElement();
               或 Element r = doc.getRootElement();

          3.取得某節點的單個子節點
          Element root = root.getRootElement();
          Element memberElm=root.element("member");// "member"是節點名

          4.取得節點的文字
          String text=memberElm.getText();

          5.取得某節點下名為"book"的所有字節點并進行遍歷
          Element r = doc.getRootElement();
          List titles = r.elements("book");
          for(int i=0;i<titles.size();i++){
               System.out.println(((Element)titles.get(i)).asXML());
          }
          6.在某節點下添加子節點.
          Element ageElm = newMemberElm.addElement("age");

          7.設置節點文字.
          ageElm.setText("29");

          8.刪除某節點.
          parentElm.remove(childElm);// childElm是待刪除的節點,parentElm是其父節點

          三.屬性相關.
          1.取得某節點下的某屬性
                      Element root=document.getRootElement();   
                      Attribute attribute=root.attribute("size");// 屬性名name
          2.取得屬性的文字
                      String text=attribute.getText();
          也可以用:
          String text2=root.element("name").attributeValue("firstname");這個是取得根節點下name字節點的屬性firstname的值.

          3.遍歷某節點的所有屬性
                      Element root=document.getRootElement();   
                      for(Iterator it=root.attributeIterator();it.hasNext();){
                          Attribute attribute = (Attribute) it.next();
                          String text=attribute.getText();
                          System.out.println(text);
                      }
          4.設置某節點的屬性和文字.
          newMemberElm.addAttribute("name", "sitinspring");
          5.設置屬性的文字
                      Attribute attribute=root.attribute("name");
                      attribute.setText("sitinspring");
          6.刪除某屬性
                      Attribute attribute=root.attribute("size");// 屬性名name
                      root.remove(attribute);
          四.將文檔寫入XML文件.
          1.文檔中全為英文,不設置編碼,直接寫入的形式.
          XMLWriter writer = new XMLWriter(new FileWriter("output.xml"));
          writer.write(document);
          writer.close();
          2.文檔中含有中文,設置編碼格式寫入的形式.
                      OutputFormat format = OutputFormat.createPrettyPrint();
                      format.setEncoding("GBK");    // 指定XML編碼       
                      XMLWriter writer = new XMLWriter(new FileWriter("output.xml"),format);
                     
                      writer.write(document);
                      writer.close();
          五.字符串與XML的轉換
          1.將字符串轉化為XML
          String text = "<members> <member>sitinspring</member> </members>";
          Document document = DocumentHelper.parseText(text);
          2.將文檔或節點的XML轉化為字符串.
                      SAXReader reader = new SAXReader();
                      Document document = reader.read(new File("input.xml"));           
                      Element root=document.getRootElement();               
                      String docXmlText=document.asXML();
                      String rootXmlText=root.asXML();
                      Element memberElm=root.element("member");
                      String memberXmlText=memberElm.asXML();
          六.使用XPath快速找到節點.
          讀取的XML文檔示例
          <?xml version="1.0" encoding="UTF-8"?>
          <projectDescription>
          <name>MemberManagement</name>
          <comment></comment>
          <projects>
              <project>PRJ1</project>
              <project>PRJ2</project>
              <project>PRJ3</project>
              <project>PRJ4</project>
          </projects>
          <buildSpec>
              <buildCommand>
                <name>org.eclipse.jdt.core.javabuilder</name>
                <arguments>
                </arguments>
              </buildCommand>
          </buildSpec>
          <natures>
              <nature>org.eclipse.jdt.core.javanature</nature>
          </natures>
          </projectDescription>

          使用XPath快速找到節點project.
          public static void main(String[] args){
              SAXReader reader = new SAXReader();
             
              try{
                Document doc = reader.read(new File("sample.xml"));
               
                List projects=doc.selectNodes("/projectDescription/projects/project");
               
                Iterator it=projects.iterator();
               
                while(it.hasNext()){
                  Element elm=(Element)it.next();      
                  System.out.println(elm.getText());
                }
               
              }
              catch(Exception ex){
                 ex.printStackTrace();
              }
          }


          posted on 2012-05-22 10:52 youngturk 閱讀(171) 評論(0)  編輯  收藏 所屬分類: 幾種文檔解析

          <2012年5月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          公告

          this year :
          1 jQuery
          2 freemarker
          3 框架結構
          4 口語英語

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          EJB學習

          Flex學習

          learn English

          oracle

          spring MVC web service

          SQL

          Struts

          生活保健

          解析文件

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 濮阳市| 灵石县| 应用必备| 罗甸县| 梨树县| 肃北| 海安县| 济宁市| 融水| 清水县| 资兴市| 宜宾县| 京山县| 韶山市| 通化市| 鄂托克前旗| 宝清县| 富锦市| 环江| 南阳市| 通化市| 德昌县| 永定县| 大关县| 同江市| 长顺县| 密山市| 封丘县| 克拉玛依市| 汉源县| 天镇县| 齐河县| 丽江市| 互助| 高邑县| 长宁区| 河南省| 永州市| 沐川县| 岳阳县| 建德市|