先写一个实例类
public class Emp {
private Integer empNo;
private String ename;
private double sal;
public Emp(){}
public Emp(Integer empNo, String ename, double sal) {
this.empNo = empNo;
this.ename = ename;
this.sal = sal;
}
public Integer getEmpNo() {
return empNo;
}
public void setEmpNo(Integer empNo) {
this.empNo = empNo;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public double getSal() {
return sal;
}
public void setSal(double sal) {
this.sal = sal;
}
}
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.XMLWriter;
/**
*
* Dom4j写XML
*
* 将JAVA对象,通过Dom4j API,转换成文档对象(树状结构),通过输出流,将文档对象写入XML文件中
*/
public class XMLDemo3 {
public static void main(String[] args) throws IOException {
List<Emp> emps = findAll();
//1、通过文档帮助器,创建一个文档对象
Document doc = DocumentHelper.createDocument();
//2、添加根元素
Element root = doc.addElement("emps");
for (Emp emp : emps) {
//3、添加子元素,属性,文本
Element empEle = root.addElement("emp");
empEle.addAttribute("empNo", emp.getEmpNo()+"");
Element enameEle = empEle.addElement("ename");
enameEle.addText(emp.getEname());
Element salEle = empEle.addElement("sal");
salEle.addText(emp.getSal()+"");
}
//4、创建一个文件输出流
FileOutputStream fos = new FileOutputStream("emps.xml");
//装饰者模式 写XML文档的输出流
XMLWriter writer = new XMLWriter(fos);
writer.write(doc);
//writer.flush();
writer.close();
}
public static List<Emp> findAll(){
List<Emp> emps = new ArrayList<Emp>();
for (int i = 0; i < 100; i++) {
Emp emp = new Emp(10001+i,"职员"+i,5000+i);
emps.add(emp);
}
return emps;
}
}
XStream应用
可以快速的将字符串转成java对象,也可以快速的将java对象转成字符串
首先导入xstream-1.3.1.jar的jar包(密码:kjv8)
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.thoughtworks.xstream.XStream;
/**
* Dom4j写XML
*
* 将JAVA对象,通过Dom4j API,转换成文档对象(树状结构),通过输出流,将文档对象写入XML文件中
*/
public class XMLDemo4 {
public static void main(String[] args) throws IOException {
List<Emp> emps = findAll();
//1.创建一个XStream对象
XStream stream = new XStream();
/**
* XStream可以直接把集合转成XML格式的字符串
*/
// String xml = stream.toXML(emps);
// System.out.println(xml);
//定义元素名
stream.alias("emps", List.class); //根元素
stream.alias("emp", Emp.class); //子元素
//属性名
stream.useAttributeFor(Emp.class, "empNo");
stream.aliasAttribute("empno", "empNo"); //更改属性名
String xml = stream.toXML(emps);
System.out.println(xml);
//这样就快速的将集合转变成XML格式的字符串
}
public static List<Emp> findAll(){
List<Emp> emps = new ArrayList<Emp>();
for (int i = 0; i < 100; i++) {
Emp emp = new Emp(10001+i,"职员"+i,5000+i);
emps.add(emp);
}
return emps;
}
}