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

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. tmux protocol version mismatch (client 7, server 6)

    $ tmux attach protocol version mismatch (client 7, server 6) $ pgrep tmux 3429 $ /proc/3429/exe atta ...

  2. python 字符串长度

    通过内置方法len()来计算字符串的长度,注意这个计算的是字符的长度. aa = 'afebb'bb = '你'print len(aa)print len(bb)

  3. 解决访问StackOverFlow太慢的问题

    Stackoverflow加载时访问了被屏蔽的站点ajax.googleapis.com,导致加载缓慢,把这个站点加到Hosts里,指向127.0.0.1即可

  4. zepto - toggle

    <input type="text" value="123456789" /> <div id="too_long"> ...

  5. sqlmap 技巧整理

    收集了一些利用Sqlmap做注入测试的TIPS,其中也包含一点绕WAF的技巧,便于大家集中查阅,欢迎接楼补充.分享. TIP1 当我们注射的时候,判断注入 http://site/script?id= ...

  6. MVC过滤器中获取实体类属性值

    本文地址:http://www.cnblogs.com/outtamyhead/p/3616913.html,转载请保留本地址! 最近在项目遇到了这个问题:获取Action行参中实体类的属性值,主要的 ...

  7. JS基础回顾,小练习(克隆对象,数组)

    对象的克隆: var srcObj = { a: 1, b: { b1: ["hello", "hi"], b2: "JavaScript" ...

  8. 快乐的JS正则表达式(一)

    上一篇介绍了为什么需要正则,那从这一篇开始我们就去学习如何使用正则. 在js中有两种方式创建正则表达式: var reg = new RegExp("表达式","可选规则 ...

  9. Knockout 新版应用开发教程之Computed Observables

    Computed Observables 如果你有监控属性firstName和lastName的话,此时如果你想要显示全名? 这个时候computed(以前叫做依赖)监控属性就出马了,这是一个函数用来 ...

  10. 【原创】C#搭建足球赛事资料库与预测平台(5) 赔率数据表设计1

            本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 开源C#彩票数据资料库系列文章总目录:http://www.cn ...