写个小例子,方便以后复习:

1 package com.demo;
2
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.junit.Test;
7
8 import com.thoughtworks.xstream.XStream;
9
10 public class XStreamDemo {
11 public List<Province> getProvince(){
12 Province bj = new Province();
13 bj.setName("北京");
14 List<City> bjCitys = new ArrayList<City>();
15 City dcq = new City("东城区","dongchengqu");
16 City xcq = new City("西城区","xichengqu");
17 City bcq = new City("北城区","beichengqu");
18 bjCitys.add(dcq);
19 bjCitys.add(xcq);
20 bjCitys.add(bcq);
21 bj.setCitys(bjCitys);
22
23
24 Province gd = new Province();
25 bj.setName("广东");
26 List<City> gdCitys = new ArrayList<City>();
27 City gzs = new City("广州市","guangzhoushi");
28 City szs = new City("深圳市","shenzhenshi");
29 City czs = new City("潮州市","chaozhoushi");
30 gdCitys.add(gzs);
31 gdCitys.add(szs);
32 gdCitys.add(czs);
33 gd.setCitys(gdCitys);
34
35 List<Province> provinces = new ArrayList<Province>();
36 provinces.add(bj);
37 provinces.add(gd);
38 return provinces;
39 }
40 /**
41 * 用xstream把JavaBean转换成xml字符串
42 */
43 @Test
44 public void fun1(){
45 XStream xs = new XStream();
46 String s = xs.toXML(getProvince());
47 System.out.println(s);
48 }
49
50
51 /**
52 * 使用xstream的alias(String name,Class object);方法更改类的名称
53 */
54 @Test
55 public void fun2(){
56 XStream xs = new XStream();
57 xs.alias("china", List.class);
58 xs.alias("province", Province.class);
59 xs.alias("city", City.class);
60 String s = xs.toXML(getProvince());
61 System.out.println(s);
62 }
63
64 /**
65 * 把子元素变为元素属性
66 */
67 @Test
68 public void fun3(){
69 XStream xs = new XStream();
70 //更改别名
71 xs.alias("china", List.class);
72 xs.alias("province", Province.class);
73 xs.alias("city", City.class);
74 //把子元素变为元素属性
75 xs.useAttributeFor(Province.class, "name");
76
77 String s = xs.toXML(getProvince());
78 System.out.println(s);
79 }
80 /**
81 * 去除集合属性对应元素
82 */
83 @Test
84 public void fun4(){
85 XStream xs = new XStream();
86 //更改别名
87 xs.alias("china", List.class);
88 xs.alias("province", Province.class);
89 xs.alias("city", City.class);
90 //把子元素变为元素属性
91 xs.useAttributeFor(Province.class, "name");
92 // 去除集合属性对应元素
93 xs.addImplicitCollection(Province.class, "citys");
94 String s = xs.toXML(getProvince());
95 System.out.println(s);
96 }
97 /**
98 * 去除集合属性对应元素
99 */
100 @Test
101 public void fun5(){
102 XStream xs = new XStream();
103 //更改别名
104 xs.alias("china", List.class);
105 xs.alias("province", Province.class);
106 xs.alias("city", City.class);
107 //把子元素变为元素属性
108 xs.useAttributeFor(Province.class, "name");
109 // 去除集合属性对应元素
110 xs.addImplicitCollection(Province.class, "citys");
111 //让类成员不生成对应的xml元素
112 xs.omitField(City.class, "explain");
113 String s = xs.toXML(getProvince());
114 System.out.println(s);
115 }
116
117 }

----其它涉及的类-----

Provice.class

1 import java.util.List;
2
3 public class Province {
4 private String name;
5 private List<City> citys;
6 public Province() {
7 super();
8 // TODO Auto-generated constructor stub
9 }
10 public Province(String name, List<City> citys) {
11 super();
12 this.name = name;
13 this.citys = citys;
14 }
15 public String getName() {
16 return name;
17 }
18 public void setName(String name) {
19 this.name = name;
20 }
21 public List<City> getCitys() {
22 return citys;
23 }
24 public void setCitys(List<City> citys) {
25 this.citys = citys;
26 }
27
28
29 }

City.class

1 public class City {
2 private String name;
3 private String explain;
4 public City() {
5 super();
6 // TODO Auto-generated constructor stub
7 }
8 public City(String name, String explain) {
9 super();
10 this.name = name;
11 this.explain = explain;
12 }
13 public String getName() {
14 return name;
15 }
16 public void setName(String name) {
17 this.name = name;
18 }
19 public String getExplain() {
20 return explain;
21 }
22 public void setExplain(String explain) {
23 this.explain = explain;
24 }
25
26 }

XStream的例子的更多相关文章

  1. java序列化/反序列化之xstream、protobuf、protostuff 的比较与使用例子

    目录 背景 测试 环境 工具 说明 结果 结论 xstream简单教程 准备 代码 protobuf简单教程 快速入门 下载.exe编译器 编写.proto文件 利用编译器编译.proto文件生成ja ...

  2. Xstream学习资料

    java中有关xml操作的,我们项目中首推Xstream.至于原因不说了.跟着大众的脚步走应该没错的.有关Xstream的文档如下. 官方文档 XStream完美转换XML.JSON XStream实 ...

  3. XStream简单入门

    简单的讲,XStream 涉及的就五个知识点:详情参考 官网 混叠,注解,转换器,对象流和操作json! 下面就用几个简单的例子来实现上述五个知识点! 基本步骤: 第1步:创建XStream对象. 通 ...

  4. (转载)XML解析之-XStream解析

    转载来源:http://hwy584624785.iteye.com/blog/1168680 本例使用XStream生成一个xml文件,再发序列化xml文件内容. XStream是一个简单的类库,可 ...

  5. XStream 快速转换xml

    项目地址:http://xstream.codehaus.org/tutorial.html (以下来源于官网) 1.Create classes to be serialized(初始化类) pub ...

  6. XStream使用详解

    1.Xstream介绍 (1)Xstream介绍     Xstream是一种OXMapping 技术,是用来处理XML文件序列化的框架,在将JavaBean序列化,或将XML文件反序列化的时候,不需 ...

  7. java操作xml的一个小例子

    最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要 ...

  8. JAVA bean与XML互转的利器---XStream

    最近在项目中遇到了JAVA bean 和XML互转的需求, 本来准备循规蹈矩使用dom4j忽然想起来之前曾接触过的XStream, 一番研究豁然开朗,利器啊利器, 下来就XStream的一些用法与大家 ...

  9. XML 处理利器 : XStream

    XStream 概述      XStream 是一套简洁易用的开发类库,用于将Java对象序列化为XML或者将XML反序列化为JAVA对象,是JAVA对象和XML之间一个双向转换器. 举例     ...

随机推荐

  1. Android中用layer-list编写阴影效果

    要实现这种效果当然有多 种方式,比如背景图片直接加阴影效果,或者用代码画一个(onDraw()).这次我们直接用layer-list来实现.在项目 res->drawable中创建一个xml,如 ...

  2. 转载 jQuery的三种$()

    $号是jQuery“类”的一个别称,$()构造了一个jQuery对象.所以,“$()”可以叫做jQuery的构造函数(个人观点,呵呵!).   1.$()可以是$(expresion),即css选择器 ...

  3. 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>

    <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--><!--[if IE]> 所有的IE可识别 <![e ...

  4. unix/linux中图形界面那些事

    我们知道unix/linux刚开始的时候是没有图形界面的,随着时代的发展,排版.制图.多媒体应用越来越普遍了,这些需求都需要用到图形界面(Graphical User Interface).为此,MI ...

  5. 【网站开发】在新浪SAE上搭建一个博客

    概述 在新浪SAE上搭建一个博客 1.访问新浪SAE站点 http://sae.sina.com.cn/ 2.注册新浪SAE 3.选择应用仓库 4.选择WordPress 5.安装WordPress ...

  6. linux VM复制多个IP配置出错的处理

    device eth0 does not seem to be present, delaying initialization (2012-09-13 21:16:38) 转载▼ 标签: 杂谈   ...

  7. mysql Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT

    使用mysql的时候,用到int类型的蛮多,需要注意一下: 1. 值的范围 Type Storage Minimum Value Maximum Value   (Bytes) (Signed/Uns ...

  8. Hadoop第5周练习—MapReduce计算气象温度等例子

    :对云计算的看法 内容 :使用MapReduce求每年最低温度 内容 :求温度平均值能使用combiner吗? 内容 :使用Hadoop流求最高温度(awk脚本) 内容 :使用Hadoop流求最高温度 ...

  9. iOS-NSDate

    一.概念解释 1.什么是NSTimeZone? NSTimeZone:时区是一个地理名字,是为了克服各个地区或者国家之间在时间上的混乱设定的. 1).GMT:0:00格林威治标准时间:UTC +00: ...

  10. springMVC基础

    controllers包写控制器: @Controller @RequestMapping(value="/utils") public class UploadControlle ...