首页 > 技术文章 > XStream将java转化成xml的简单使用

cbiwei 2017-06-08 15:28 原文

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;
	}
	
}

推荐阅读