将对象转化为XML格式的字符串

如何将JavaBean、Array、List和Map等集合,转换成XML格式响应给客户端?
* 使用第三方提供的工具来实现:XStream
* 核心包:xstream-1.4.4.jar

* 必要依赖包:xpp3_min-1.1.4c.jar

***********************************************************************************

Provinc.java

package app.bean;

import java.util.List;

public class Province {

	private Integer id;
	private String name;
	private List cities;
	public Province(Integer id,String name,List cities) {
		this.id = id;
		this.name = name;
		this.cities = cities;
	}
	public List getCities() {
		return cities;
	}
	public void setCities(List cities) {
		this.cities = cities;
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
}
City.java

package app.bean;

public class City {

	private Integer id;
	private String name;
	public City(Integer id,String name) {
		this.id = id;
		this.name = name;
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
}

Test.java

package app.test;

import java.util.ArrayList;
import java.util.List;

import com.thoughtworks.xstream.XStream;

import app.bean.City;
import app.bean.Province;

public class Test {

	public static void main(String[] args) {
		/***************模拟查询数据库的结果********************/
		City c1 = new City(1, "长春市");
		City c2 = new City(2, "吉林市");
		City c3 = new City(3, "松原市");
		City c4 = new City(4, "四平市");
		City c5 = new City(5, "通化市");
		
		List<City> cities = new ArrayList<City>();
		cities.add(c1);
		cities.add(c2);
		cities.add(c3);
		cities.add(c4);
		cities.add(c5);
		
		Province p = new Province(1,"吉林省",cities);
		/***************模拟查询数据库的结果********************/
		/***************如何进行转换**************************/
		//1 创建XStream实例对象
		XStream xStream = new XStream();
		
		/*
		 * 2 为xml格式的标签设置别名:
		 * 	alias(String name, Class type)
		 * 		* name:表示别名
		 * 		* type:指定要为哪个JavaBean起别名
		 */
		xStream.alias("province", Province.class);
		xStream.alias("city", City.class);
		
		/*
		 * 3 为xml格式的标签设置属性
		 * 	useAttributeFor(Class definedIn, String fieldName)
		 * 		* definedIn:指定要为哪个JavaBean设置属性
		 * 		* fieldName:指定要设置哪个属性
		 */
		xStream.useAttributeFor(Province.class, "id");
		xStream.useAttributeFor(Province.class, "name");
		
		xStream.useAttributeFor(City.class, "id");
		xStream.useAttributeFor(City.class, "name");
		
		//4 直接进行转换xml
		String xml = xStream.toXML(p);
		
		//测试
		System.out.println(xml);
		/* 打印结果
		 * <province id="1" name="吉林省">
		  <cities>
		    <city id="1" name="长春市"/>
		    <city id="2" name="吉林市"/>
		    <city id="3" name="松原市"/>
		    <city id="4" name="四平市"/>
		    <city id="5" name="通化市"/>
		  </cities>
		</province>*/
	}
	
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值