java如何创建xml文档

时间:2022-06-05 17:25:00

        首先,到http://www.dom4j.org/dom4j-1.6.1/下载dom4j组件,

        如果网页已过期的话,也可以到http://download.csdn.net/detail/u014771464/9399356我的资源里面免费下载


        拥有了 dom4j-1.6.1 组件之后,将 dom4j-1.6.1.jar 文件和lib文件夹下的 jaxen-1.1-beta-6.jar 文件这两个 jar 包复制后粘贴到 项目的 lib 文件夹下。

        接着,说一下用java代码创建xml文件的步骤:

        1)创建xml文档对象:

             Document document=DocumentHelper.createDocument();//DocumentHelper是一个工具类,类似于一个工厂(不懂工厂模式的自己查一下相关知识,有助于今后开发程序)

        2)创建根节点

             Element root=DocumentHelper.createElement("root");//创建一个普通节点

             document.setRootElement(root);//将普通节点设置为根节点

        3)创建子节点       

             Element descript=root.addElement("descript");//为根节点添加一个普通的子节点

        4)为节点添加属性

             descript.addAttribute("id", "1");//descript节点的属性 id 的值为 1

        5)为结点添加内容

             descript.setText("上海?");


        创建完之后还得输出该xml文档到磁盘上,这样用户能看到,输出xml文件的步骤:

        1)设置输出文档的格式:

             OutputFormat format=OutputFormat.createPrettyPrint();//createPrettyPrint()方法指定xml文档的格式为缩进方式

             format.setEncoding("utf-8");//设置文档的编码方式

        2)创建输出流,指定输出的文件名和路径

             FileOutputStream outFile=new FileOutputStream("test.xml");//test.xml文件会生成到当前项目的直接子目录下

        3)输出xml文件          

             XMLWriter xmlWriter=new XMLWriter(outFile,format);//实例化xml输出流对象
             xmlWriter.write(document); //向下,xml输出流写入数据

        4)关闭流

             outFile.close();
             xmlWriter.close();


        最后,附上一个能运行的简单的demo小程序:

import java.io.FileNotFoundException;

import java.io.FileOutputStream;
import java.io.UnsupportedEncodingException;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class Dom4jTest {
    public static void main(String args[]){
        Document document=DocumentHelper.createDocument();
        Element root=DocumentHelper.createElement("root");
        document.setRootElement(root);
        Element descript=root.addElement("descript");
        descript.addAttribute("id", "1");
        descript.setText("上海?");
        OutputFormat format=OutputFormat.createPrettyPrint();//createPrettyPrint()方法指定xml文档的格式为缩进方式
        format.setEncoding("utf-8");
        try{
            FileOutputStream outFile=new FileOutputStream("test.xml");
            XMLWriter xmlWriter=new XMLWriter(outFile,format);
            xmlWriter.write(document);    
            outFile.close();
            xmlWriter.close();
        }catch(FileNotFoundException e){
            e.printStackTrace();
        }catch(UnsupportedEncodingException e){
            e.printStackTrace();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}