想飛就別怕摔

          大爺的并TM罵人

          java中使用Dom4j修改xml文件【轉】

            1 package org.zzn.dom4j;
            2 
            3 import org.dom4j.Document;
            4 import org.dom4j.Element;
            5 import org.dom4j.Attribute;
            6 import java.util.List;
            7 import java.util.Iterator;
            8 
            9 import org.dom4j.io.OutputFormat;
           10 import org.dom4j.io.XMLWriter;
           11 import java.io.*;
           12 import org.dom4j.DocumentException;
           13 import org.dom4j.io.SAXReader;
           14 
           15 
           16 public class Dom4JParser{
           17  public void modifyDocument(File inputXml){
           18   try{
           19    //使用 SAXReader 解析 XML 文檔 catalog.xml  
           20    SAXReader saxReader = new SAXReader();
           21    Document document = saxReader.read(inputXml);
           22    
           23    //SAXReader 包含在 org.dom4j.io 包中。 
           24    //inputXml 是從 c:/catalog/catalog.xml 創建的 java.io.File。
           25    //使用 XPath 表達式從 article 元素中獲得 level 節點列表。
           26    //如果 level 屬性值是“Intermediate”則改為“Introductory”。 
           27    List list = document.selectNodes("//article/@level" );
           28    Iterator iter=list.iterator();
           29    while(iter.hasNext()){
           30     Attribute attribute=(Attribute)iter.next();
           31     if(attribute.getValue().equals("Intermediate"))
           32       attribute.setValue("Introductory"); 
           33        }
           34    
           35    //獲取 article 元素列表,從 article 元素中的 title 元素得到一個迭代器,并修改 title 元素的文本。
           36    list = document.selectNodes("//article/@date" );
           37    iter=list.iterator();
           38    while(iter.hasNext()){
           39     Attribute attribute=(Attribute)iter.next();
           40     if(attribute.getValue().equals("December-2001"))
           41       attribute.setValue("October-2002");
           42        }
           43    list = document.selectNodes("//article" );
           44    iter=list.iterator();
           45    while(iter.hasNext()){
           46     Element element=(Element)iter.next();
           47     Iterator iterator=element.elementIterator("title");
           48       while(iterator.hasNext()){
           49         Element titleElement=(Element)iterator.next();
           50         if(titleElement.getText().equals("Java configuration with XML Schema"))
           51         titleElement.setText("Create flexible and extensible XML schema");
           52                                           }
           53                                 }
           54    
           55    //通過和 title 元素類似的過程修改 author 元素
           56     list = document.selectNodes("//article/author" );
           57     iter=list.iterator();
           58      while(iter.hasNext()){
           59      Element element=(Element)iter.next();
           60      Iterator iterator=element.elementIterator("firstname");
           61      while(iterator.hasNext()){
           62       Element firstNameElement=(Element)iterator.next();
           63       if(firstNameElement.getText().equals("Marcello"))
           64       firstNameElement.setText("Ayesha");
           65                                      }
           66                               }
           67     list = document.selectNodes("//article/author" );
           68     iter=list.iterator();
           69      while(iter.hasNext()){
           70       Element element=(Element)iter.next();
           71       Iterator iterator=element.elementIterator("lastname");
           72      while(iterator.hasNext()){
           73       Element lastNameElement=(Element)iterator.next();
           74       if(lastNameElement.getText().equals("Vitaletti"))
           75       lastNameElement.setText("Malik");
           76                                   }
           77                                }
           78      
           79      OutputFormat format = OutputFormat.createPrettyPrint();
           80      format.setEncoding("GBK");
           81      XMLWriter output = new XMLWriter(
           82      new FileWriter( new File("e:/catalog-modified.xml") ),format);
           83      output.write( document );
           84      output.close();
           85    }
           86  
           87   catch(DocumentException e)
           88                  {
           89                   System.out.println(e.getMessage());
           90                             }
           91   catch(IOException e){
           92                        System.out.println(e.getMessage());
           93                     }
           94  }
           95  public static void main(String[] argv){
           96   Dom4JParser dom4jParser=new Dom4JParser();
           97   dom4jParser.modifyDocument(new File("e:/catalog.xml"));
           98                                         }
           99    }
          100 

          運行此代碼需要 dom4j.jar包和jaxen.jar包

          posted on 2008-12-28 15:25 生命的綻放 閱讀(4485) 評論(1)  編輯  收藏 所屬分類: JAVA

          評論

          # re: java中使用Dom4j修改xml文件【轉】 2010-04-22 15:53 ww

          運行起來的代碼 報錯啊 e Nested exception: e



          問題在這個異常里面 catch(DocumentException e)
          {
          System.out.println(e.getMessage());
          }  回復  更多評論   

          <2008年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導航

          統計

          常用鏈接

          留言簿(5)

          隨筆分類(94)

          隨筆檔案(93)

          文章分類(5)

          文章檔案(5)

          相冊

          JAVA之橋

          SQL之音

          兄弟之窗

          常用工具下載

          積分與排名

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 寿阳县| 黄冈市| 桃园县| 周宁县| 林西县| 大同市| 旬邑县| 石狮市| 聊城市| 普兰县| 大丰市| 滨州市| 余江县| 建德市| 炎陵县| 南华县| 合山市| 崇义县| 西丰县| 和林格尔县| 蒲江县| 临颍县| SHOW| 衡阳市| 土默特右旗| 阳曲县| 江安县| 上饶县| 弥渡县| 中阳县| 沐川县| 晋江市| 博湖县| 蒙阴县| 汉源县| 邯郸县| 奉新县| 定陶县| 西华县| 淄博市| 邵武市|