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

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. ubuntu14.04 LTS 更新源

    官方源: deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse deb http://arc ...

  2. JS中的constructor与prototype

    http://www.cnblogs.com/qiantuwuliang/archive/2011/01/08/1930548.html 在学习JS的面向对象过程中,一直对constructor与pr ...

  3. 使用go的ssh包快速打造一个本地命令行ssh客户端

    热身运动

  4. common.css

    /* global */ document,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockqu ...

  5. 金蝶EAS常用表

    select * from T_SCM_BillType where FName_L2 like '%委外%'   --单据类型表,查业务单据对应的表  102--销售出库单  330--应收单 se ...

  6. Powerdesigner逆向工程从sql server数据库生成pdm (转载)

    第一步:打开"控制面板"中的"管理工具" 第二步:点击"管理工具"然后双击"数据源(odbc)" 第三步:打开之后,点击 ...

  7. 【转】在Eclipse里查看Java字节码

    要理解 Java 字节码,比较推荐的方法是自己尝试编写源码对照字节码学习.其中阅读 Java 字节码的工具必不可少.虽然javap可以以可读的形式展示出.class 文件中字节码,但每次改动源码都需调 ...

  8. bootstrap插件学习-bootstrap.alert.js

    我们先看bootstrap.alert.js的结构 var dismiss = '[data-dismiss="alert"]' //自定义属性 Alert = function ...

  9. Understanding G1 GC Logs--转载

    原文地址:https://blogs.oracle.com/poonam/entry/understanding_g1_gc_logs Understanding G1 GC Logs By Poon ...

  10. linux主机间复制文件

    命令基本格式: 1.从 本地 复制到 远程    * 复制文件:          * 命令格式:                  scp local_file remote_username@re ...