JAVA输出XML文件形式

先写一个实例类

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 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 findAll(){
        List emps = new ArrayList();
        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 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 findAll(){
        List emps = new ArrayList();
        for (int i = 0; i < 100; i++) {
            Emp emp = new Emp(10001+i,"职员"+i,5000+i);
            emps.add(emp);
        }
        return emps;
    }

}

你可能感兴趣的:(JAVA的那些事儿)