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>