通过dom4j写.xml文件

步骤:

1.左键选中src,点击红圈2:

2.新建类:

3.开始写代码:

package com.bjsxt.xml;


import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;

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

public class TextXml2 {

    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        //[1]通过DocumentHelper生成一个Document对象。
        Document doc=DocumentHelper.createDocument();//创建一个空对象
        //doc.addElement("books").addElement("book").addAttribute("id", "01");//此为链式编程(这一句可以代替2、3、4步,但可读性差)
        //[2]添加一个根元素,同时也得到了一个根元素(返回值),可以用一个对象接收一下
        Element root=doc.addElement("books");//创建并拿到了一个根元素
        //[3]为根元素添加子元素,如果添加两本可以用循环来做,先添加一本吧:
        Element book=root.addElement("book");//子元素book其实还有其他属性,下面来添加:
        //[4]为booK子元素添加属性:(链式编程)
        book.addAttribute("id", "01");//添加属性得到的还是一个元素
        //[5]这里还可以为book元素继续添加子元素:
        Element name=book.addElement("name");
        Element author=book.addElement("author");
        Element price=book.addElement("price");
        //[6]为子元素添加文本信息,如书名:
        name.addText("红楼梦");
        author.addText("曹雪芹");
        price.addText("RMB48");
        //总结一下:给文档加了一个根元素"books",给根元素加了一个子元素"book",给子元素加了一个属性id,同时也给
        //子元素加了3个子元素,给每个子元素加上了文本信息。
        
        /*
        //[7]将document对象输出到.xml文件中即可。
        Writer writer=new FileWriter(new File("src/book2.xml"));
        doc.write(writer);
        //writer是自己创建的,最后还需要关闭:
        writer.close();
        */
        //以上输出是简单的输出,所有输出结果在一行上。
        //[8]以下进行格式良好的输出:
        OutputFormat format=OutputFormat.createPrettyPrint();
        format.setEncoding("gb2312");//文件内容的编码,这一句是为了解决中文显示乱码的问题!
        XMLWriter writer=new XMLWriter(new FileWriter(new File("src/book2.xml")),format);
        writer.write(doc);
        //关闭打开的资源:
        writer.close();
    }
}

4.点击Run,对着src右键-Refresh,即可得到运行结果:

 

posted on 2018-11-15 19:00  一杯明月  阅读(626)  评论(0编辑  收藏  举报