1、 结构图和Jar包:

Dom4j实例创建XML

2、 NewXML.java

package com.flyfox.create;

 

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.util.Iterator;

import java.util.List;

import org.dom4j.Attribute;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.DocumentHelper;

import org.dom4j.Element;

import org.dom4j.io.OutputFormat;

import org.dom4j.io.SAXReader;

import org.dom4j.io.XMLWriter;

 

public class NewXML {

   

 

    public boolean newXMl(String fileName) {

       boolean returnValue = false;

       // 定义一个XML文档

       Document docement = DocumentHelper.createDocument();

       // 设置XML文档的元素

       Element rootElement = docement.addElement("DOM4J创建XML文档");

       rootElement.addComment("镜花水月2007-4-24晚上创建");

       Element nameElement = rootElement.addElement("镜花水月");

       nameElement.addAttribute("名字", "不告诉你");

       Element schoolElement = nameElement.addElement("学校");

       schoolElement.setText("西安翻译学院");

       Element cityElement = rootElement.addElement("城市");

       cityElement.setText("上海");

       Element homeElement = cityElement.addElement("住址");

       homeElement.setText("徐家汇");

       // 创建XML文档

       try {

          

           OutputFormat format = OutputFormat.createPrettyPrint();

          

           format.setEncoding("GBK");

           XMLWriter writer = new XMLWriter(

                  new FileWriter(new File(fileName)), format);

           writer.write(docement);

           writer.close();

           return returnValue = true;

       } catch (IOException e) {

           e.printStackTrace();

       }

       return returnValue;

    }

 

   

    public boolean update(String fileName, String newFileName) {

       boolean returnValaue = false;

       SAXReader reader = new SAXReader();

       try {

           Document docement = reader.read(new File(fileName));

           List list = null;

       list = docement.selectNodes("/DOM4J创建XML文档/镜花水月/@名字");          Iterator it = list.iterator();

 

           while (it.hasNext()) {

              Attribute attribute = (Attribute) it.next();

              if (attribute.getValue().equals("不告诉你")) {

                  attribute.setValue("还是不告诉你");

              }

           }

           // 将就该写入新的文件

           try {

              // 转码

              OutputFormat format = OutputFormat.createPrettyPrint();

              format.setEncoding("GBK");

              XMLWriter writer = new XMLWriter(new FileWriter(new File(

                     newFileName)), format);

              writer.write(docement);

              writer.close();

               return returnValaue = true;

           } catch (IOException e) {

              e.printStackTrace();

           }

       } catch (DocumentException e) {

           e.printStackTrace();

       }

       return returnValaue;

    }

 

    public static void main(String[] args) {

       NewXML newXml = new NewXML();

       String name = "newXML.xml";

       String newName = "UpdateXML.xml";

       if (!newXml.newXMl(name)) {

           System.out.println("创建出现错误!");

           return;

       } else {

           System.out.println("创建XML成功!");

       }

       if (!newXml.update(name, newName)) {

           System.out.println("修改出现错误!");

           return;

       } else {

           System.out.println("修改XML成功");

       }

    }

}

3、 newXML.xml

<?xml version="1.0" encoding="GBK"?>

 

<DOM4J创建XML文档>

  <!--镜花水月2007-4-24晚上创建-->

  <镜花水月 名字="不告诉你">

    <学校>西安翻译学院</学校>

  </镜花水月>

  <城市>上海

    <住址>徐家汇</住址>

  </城市>

</DOM4J创建XML文档>

4、 UpdateXML.xml

<?xml version="1.0" encoding="GBK"?>

 

<DOM4J创建XML文档>

  <!--镜花水月2007-4-24晚上创建--> 

  <镜花水月 名字="还是不告诉你">

    <学校>西安翻译学院</学校>

  </镜花水月> 

  <城市>上海

    <住址>徐家汇</住址>

  </城市>

</DOM4J创建XML文档>

5、 输出结果

创建XML成功!

修改XML成功

没有登录不能评论