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

来源:互联网 发布:数据库序列如何创建 编辑:程序博客网 时间:2024/05/01 11:45
  package org.zzn.dom4j;     import org.dom4j.Document;  import org.dom4j.Element;  import org.dom4j.Attribute;  import java.util.List;  import java.util.Iterator;    import org.dom4j.io.OutputFormat;  import org.dom4j.io.XMLWriter;  import java.io.*;  import org.dom4j.DocumentException;  import org.dom4j.io.SAXReader;      public class Dom4JParser{   public void modifyDocument(File inputXml){    try{     //使用 SAXReader 解析 XML 文档 catalog.xml       SAXReader saxReader = new SAXReader();     Document document = saxReader.read(inputXml);          //SAXReader 包含在 org.dom4j.io 包中。      //inputXml 是从 c:/catalog/catalog.xml 创建的 java.io.File。     //使用 XPath 表达式从 article 元素中获得 level 节点列表。     //如果 level 属性值是“Intermediate”则改为“Introductory”。      List list = document.selectNodes("//article/@level" );     Iterator iter=list.iterator();     while(iter.hasNext()){      Attribute attribute=(Attribute)iter.next();      if(attribute.getValue().equals("Intermediate"))        attribute.setValue("Introductory");          }          //获取 article 元素列表,从 article 元素中的 title 元素得到一个迭代器,并修改 title 元素的文本。     list = document.selectNodes("//article/@date" );     iter=list.iterator();     while(iter.hasNext()){      Attribute attribute=(Attribute)iter.next();      if(attribute.getValue().equals("December-2001"))        attribute.setValue("October-2002");         }     list = document.selectNodes("//article" );     iter=list.iterator();     while(iter.hasNext()){      Element element=(Element)iter.next();      Iterator iterator=element.elementIterator("title");        while(iterator.hasNext()){          Element titleElement=(Element)iterator.next();          if(titleElement.getText().equals("Java configuration with XML Schema"))          titleElement.setText("Create flexible and extensible XML schema");                                            }                                  }          //通过和 title 元素类似的过程修改 author 元素      list = document.selectNodes("//article/author" );      iter=list.iterator();       while(iter.hasNext()){       Element element=(Element)iter.next();       Iterator iterator=element.elementIterator("firstname");       while(iterator.hasNext()){       Element firstNameElement=(Element)iterator.next();        if(firstNameElement.getText().equals("Marcello"))        firstNameElement.setText("Ayesha");                                       }                                }      list = document.selectNodes("//article/author" );      iter=list.iterator();       while(iter.hasNext()){        Element element=(Element)iter.next();        Iterator iterator=element.elementIterator("lastname");       while(iterator.hasNext()){        Element lastNameElement=(Element)iterator.next();        if(lastNameElement.getText().equals("Vitaletti"))       lastNameElement.setText("Malik");                                    }                                 }              OutputFormat format = OutputFormat.createPrettyPrint();       format.setEncoding("GBK");       XMLWriter output = new XMLWriter(       new FileWriter( new File("e:/catalog-modified.xml") ),format);       output.write( document );       output.close();     }       catch(DocumentException e)                   {                   System.out.println(e.getMessage());                              }    catch(IOException e){                         System.out.println(e.getMessage());                      }   }   public static void main(String[] argv){    Dom4JParser dom4jParser=new Dom4JParser();    dom4jParser.modifyDocument(new File("e:/catalog.xml"));                                          }    } 

运行此代码需要 dom4j.jar包和jaxen.jar包

转载自:http://www.blogjava.net/hhhaaawwwkkk/archive/2008/12/28/248745.html