《知识点044:使用dom4j生成XML文件》

dom4j生成XML文件

(一)dom4j生成简单的xml文件

1.1:创建一个文档模型

Document document = DocumentHelper.createDocument();

1.2:创建元素的根节点

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

1.3:根节点添加元素和属性

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

1.4:保存文件

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

1.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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大大大钢琴

喜欢!就请他吃3块钱好吃的吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值