java中使用Dom4j修改xml文件【转】
2012-10-14 12:46
295 查看
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
相关文章推荐
- 在Java下使用DOM来读取/修改Xml文件
- 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】
- 使用dom4j把XML文件解析成JavaBean
- JAVA使用Dom4j实现字符串和xml文件相互转换
- java学习:使用dom4j读写xml文件
- Java-创建和解析XML文件(之)使用Dom4j
- JAVA使用Dom4j实现字符串和xml文件相互转换
- java 使用DOM4J对XML文件进行增删改查操作
- JAVA使用Dom4j实现字符串和xml文件相互转换
- java中用Dom4J来操作xml文件(删除和修改和添加)
- Java读写xml文件的一些经验(使用dom4j)
- 【学习笔记】JAVA之使用dom4j对xml文件解析
- 使用dom4j把java对象转XML并存为xml文件
- java中使用dom4j解析XML文件的方法教程
- Java基础系列17:使用DOM、SAX、JDOM、DOM4J解析XML文件详解
- Java&Xml教程(三)使用DOM方式修改XML文件内容
- JAVA使用Dom4j实现字符串和xml文件相互转换
- Java&Xml教程(三)使用DOM方式修改XML文件内容
- java类——使用dom4j创建xml文件
- Java&Xml教程(三)使用DOM方式修改XML文件内容