XStream可以用来将java实体转化成xml形式的字符串, 也可以将xml文档的字符串读取成java实体.
jar包依赖地址
com.thoughtworks.xstream
xstream
${xstream-version}
使用方法实例
这是我在网上看的一个教程文档,使用的测试类
package com.hero.test;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.thoughtworks.xstream.XStream;
public class TestXstream {
public static void main(String[] args) throws IOException{
Person person = buildPerson();
XStream xStream = new XStream();
//output(1,xStream,person);
// 设置类别名
xStream.alias("Person", Person.class);
xStream.alias("Address", Address.class);
xStream.alias("Profile", Profile.class);
output(2,xStream,person);
设置类成员变量的别名
//xStream.aliasField("NAME", Person.class, "name");
//xStream.aliasField("JOB", Profile.class, "job");
//output(3,xStream,person);
设置类的成员为xml节点的属性
//xStream.useAttributeFor(Address.class, "add");
//output(4,xStream,person);
设置类的成员为xml节点的属性的别名
//xStream.aliasAttribute(Address.class, "add", "ADD");
//output(5,xStream,person);
// xml转java
//String xml = buildXml();
//System.out.println(xStream.fromXML(xml).toString());
}
public static void output(int i,XStream xStream, Person obj) throws IOException{
System.out.println("****************第"+i+"次输出******************");
File file = new File("/Users/admin/Documents/temp/xml/"+obj.getName()+".xml");
FileOutputStream os = new FileOutputStream(file);
String xml = xStream.toXML(obj);
System.out.println(xml);
byte[] bt = xml.getBytes();
os.write(bt);
os.flush();
os.close();
}
public static Person buildPerson(){
Address add1 = new Address("人民路","200001");
Address add2 = new Address("达夫路","200002");
List
addlist = new ArrayList ();addlist.add(add1);
addlist.add(add2);
Profile profile = new Profile("工程师","021-0001","这是备注");
Person person = new Person("mary","23",profile,addlist);
return person;
}
public static String buildXml(){
String xml = ""+
"mary"+
"23"+
""+
"工程师"+
"021-0001"+
"这是备注"+
""+
""+
"
"+"人民路"+
"200001"+
"
"+"
"+"达夫路"+
"200002"+
"
"+""+
"";
return xml;
}
}