通过XmlWriter写入XML文件

EMP.java代码内容

 package xmlDemo;

public class EMP {
    int id;
    String name;
    int age;
    String gender;
    double salary;

    public EMP(int id, String name, int age, String gender, double salary) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.salary = salary;
    }

}

XmlWriter.java代码内容

package xmlDemo;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

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

public class XmlWriter {
    public static void main(String[] args) {
        List<EMP> list = new ArrayList<EMP>();
        list.add(new EMP(1, "张三", 23, "男", 20000));
        list.add(new EMP(2, "李四", 24, "男", 21000));
        list.add(new EMP(3, "王五", 25, "男", 22000));
        list.add(new EMP(4, "张三", 26, "男", 23000));
        list.add(new EMP(5, "张三", 27, "男", 24000));
        // 创建文档对象
        Document doc = DocumentHelper.createDocument();
        // 创建根节点
        Element root = doc.addElement("emps");
        for (EMP emp : list) {
            // 根据集合里面的emp添加emp节点
            Element empElement = root.addElement("emp");
            // 添加员工的属性节点,并为属性节点=附文本值
            empElement.addElement("id").setText(Integer.toString(emp.id));
            empElement.addElement("age").setText(Integer.toString(emp.age));
            empElement.addElement("name").setText(emp.name);
            empElement.addElement("gender").setText(emp.gender);
            empElement.addElement("salary").setText(Double.toString(emp.salary));
            // 把id当属性添加
            empElement.addAttribute("id", Integer.toString(emp.id));
        }
        // 设置XML文档格式
        OutputFormat outputFormat = OutputFormat.createPrettyPrint();
        // 设置XML编码方式,即是用指定的编码方式保存XML文档到字符串(String),这里也可以指定为GBK或是ISO8859-1
        outputFormat.setEncoding("UTF-8");
        // outputFormat.setSuppressDeclaration(true); //是否生产xml头
        outputFormat.setIndent(true); // 设置是否缩进
        outputFormat.setIndent("    "); // 以四个空格方式实现缩进
        outputFormat.setNewlines(true); // 设置是否换行
        XMLWriter writer = null;
        try {
            writer = new XMLWriter(outputFormat);
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        }
        try {
            FileOutputStream fos = new FileOutputStream("emps.xml");
            writer.setOutputStream(fos);
            writer.write(doc);
            writer.close();
            System.out.println("写入完毕!");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

写入完成的emps.xml

<?xml version="1.0" encoding="UTF-8"?>

<emps>
    <emp id="1">
        <id>1</id>
        <age>23</age>
        <name>张三</name>
        <gender>男</gender>
        <salary>20000.0</salary>
    </emp>
    <emp id="2">
        <id>2</id>
        <age>24</age>
        <name>李四</name>
        <gender>男</gender>
        <salary>21000.0</salary>
    </emp>
    <emp id="3">
        <id>3</id>
        <age>25</age>
        <name>王五</name>
        <gender>男</gender>
        <salary>22000.0</salary>
    </emp>
    <emp id="4">
        <id>4</id>
        <age>26</age>
        <name>张三</name>
        <gender>男</gender>
        <salary>23000.0</salary>
    </emp>
    <emp id="5">
        <id>5</id>
        <age>27</age>
        <name>张三</name>
        <gender>男</gender>
        <salary>24000.0</salary>
    </emp>
</emps>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值