XStream将java转化成xml的简单使用
XStream可以用来将java实体转化成xml形式的字符串, 也可以将xml文档的字符串读取成java实体.
jar包依赖地址
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>${xstream-version}</version>
</dependency>
使用方法实例
这是我在网上看的一个教程文档,使用的测试类
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<Address> addlist = new ArrayList<Address>();
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 = "<Person>"+
"<name>mary</name>"+
"<age>23</age>"+
"<profile>"+
"<job>工程师</job>"+
"<tel>021-0001</tel>"+
"<remark>这是备注</remark>"+
"</profile>"+
"<addlist>"+
"<Address>"+
"<add>人民路</add>"+
"<zipcode>200001</zipcode>"+
"</Address>"+
"<Address>"+
"<add>达夫路</add>"+
"<zipcode>200002</zipcode>"+
"</Address>"+
"</addlist>"+
"</Person>";
return xml;
}
}