Java dom4j生成XML文件

dom4j简单生成XML文件步骤

1. 创建一个文档模型

Document document = DocumentHelper.createDocument(); 

2. 创建元素的根节点

Element root = document.addElement("root");

3. 根节点添加元素和属性

root.addElement( "author" ).addAttribute( "name", "James" ).addAttribute( "location", "UK" ).addText( "James Strachan" );

4. 保存文件

writer.write(document);
writer.close();

5. 代码

public static void main(String[] args) throws IOException {
    OutputFormat format = OutputFormat.createPrettyPrint();
    XMLWriter writer = new XMLWriter(new FileWriter("output.xml"), format);

    Document document = DocumentHelper.createDocument();
    Element root = document.addElement("root");

    root.addComment("This is xml comment");
    root.addElement("author").addAttribute("name", "James").addAttribute("location", "UK").addText("James Strachan");
    writer.write(document);
    writer.close();
}

生成xml文件格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <!--This is xml comment-->
  <author name="James" location="UK">James Strachan</author>
</root>

dom4j嵌套生成XML复杂例子

public class TestXML {

    public static void main(String[] args) {
        FileWriter out = null;
        try {
            out = new FileWriter("src/foo.xml"); //写入文件
            createDocument().write(out);
            OutputFormat format = OutputFormat.createPrettyPrint(); //转换成字符串
            format.setEncoding("UTF-8");
            XMLWriter writer = new XMLWriter(System.out, format);
            writer.write(createDocument());
        } catch(IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            if (out != null) {
                try {
                    out.close();
                } catch(IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }

    public static Document createDocument() {
        Document document = DocumentHelper.createDocument();

        Element root = document.addElement("result");
        root.addElement("code").addText("1");
        Element data = root.addElement("data");

        Element person1 = data.addElement("person");
        person1.addElement("name").setText("张三");
        person1.addElement("id").setText("1");
        person1.addElement("url").setText("http://192.168.191.1:9999/TestWeb/c7fe21616d2a5e2bd1e84bd453a5b30f.jpg");
        Element courses1 = person1.addElement("courses");
        Element course1 = courses1.addElement("course");
        course1.addElement("courseName").setText("语文");
        course1.addElement("courseMarks").setText("90");
        course1.addElement("courseId").setText("1");
        Element course2 = courses1.addElement("course");
        course2.addElement("courseName").setText("数学");
        course2.addElement("courseMarks").setText("80");
        course2.addElement("courseId").setText("2");
        Element course3 = courses1.addElement("course");
        course3.addElement("courseName").setText("英语");
        course3.addElement("courseMarks").setText("70");
        course3.addElement("courseId").setText("3");

        Element person2 = data.addElement("person").addAttribute("name", "李四").addAttribute("id", "2").addAttribute("url", "http://192.168.191.1:9999/TestWeb/4052858c526002a712ef574ccae1948f.jpg");
        person2.addElement("course").addAttribute("courseName", "语文").addAttribute("courseMarks", "91").addAttribute("courseId", "1");
        person2.addElement("course").addAttribute("courseName", "数学").addAttribute("courseMarks", "82").addAttribute("courseId", "1");
        person2.addElement("course").addAttribute("courseName", "英语").addAttribute("courseMarks", "73").addAttribute("courseId", "1");

        return document;
    }
}

生成xml格式如下:

<?xml version = "1.0"encoding = "UTF-8" ?>
<result > <code > 1 < /code>
  <data>
    <person>
      <name>张三</name > <id > 1 < /id>
      <url>http:/ / 192.168.191.1 : 9999 / TestWeb / c7fe21616d2a5e2bd1e84bd453a5b30f.jpg < /url>
      <courses>
        <course>
          <courseName>语文</courseName > <courseMarks > 90 < /courseMarks>
          <courseId>1</courseId > </course>
        <course>
          <courseName>数学</courseName > <courseMarks > 80 < /courseMarks>
          <courseId>2</courseId > </course>
        <course>
          <courseName>英语</courseName > <courseMarks > 70 < /courseMarks>
          <courseId>3</courseId > </course>
      </courses > </person>
    <person name="李四" id="2" url="http:/ / 192.168.191.1 : 9999 / TestWeb / 4052858c526002a712ef574ccae1948f.jpg ">
      <course courseName="语文" courseMarks="91 " courseId="1 "/>
      <course courseName="数学" courseMarks="82 " courseId="1 "/>
      <course courseName="英语" courseMarks="73 " courseId="1 "/>
    </person>
  </data>
</result>


版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。