文档章节

XStream 初探,很给力

史上最强的弟子
 史上最强的弟子
发布于 2016/11/10 18:34
字数 555
阅读 29
收藏 0

主要代码 /** * Xstream 测试 * @return */ @RequestMapping("/forward/xstream") public String xstream(){ String str = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><epay><items><item><id>2</id><name>cyc1</name></item><item><id>1</id><name>cyc</name></item></items></epay>"; XStream xstream = new XStream(); //获取生成的对象 TestVo testVo = getPerson(); //构建对应的节点(这里很重要构建生成的Xml 文件或者对象的节点) xstream.alias("epay",TestVo.class); xstream.aliasField("items",TestVo.class, "list"); xstream.alias("item", tests.class); //将对象转为xml String xml = xstream.toXML(testVo); System.out.println("cyc==== XStream:"+xml); //将xml转为对象 TestVo testVos = (TestVo) xstream.fromXML(str); System.out.println("cyc==== testVos"+testVos); //将对象再次转为xml String xml2 = xstream.toXML(testVos); System.out.println("cyc==== XStream2:"+xml2); System.out.println("cyc==== Size:"+testVos.getList().size()); return "publicTpl/notChrome"; } public TestVo getPerson(){ TestVo testVo = new TestVo(); List<tests> list = new ArrayList<tests>(); for(int i=0;i<10;i++){ tests tests = new tests(); tests.setId("1"); tests.setName("cyc"); list.add(tests); } testVo.setList(list); return testVo; } TestVo类代码: public class TestVo { private List<tests> list;

public List<tests> getList() {
	return list;
}

public void setList(List<tests> list) {
	this.list = list;
}

@Override
public String toString() {
	return "TestVo [list=" + list + "]";
}

}


tests类代码:
public class tests {
	private String id;
	private String name;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	@Override
	public String toString() {
		return "tests [id=" + id + ", name=" + name + "]";
	}
	
}

输出结果:

cyc==== XStream:<epay>
  <items>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
  </items>
</epay>
cyc==== testVosTestVo [list=[tests [id=2, name=cyc1], tests [id=1, name=cyc]]]
cyc==== XStream2:<epay>
  <items>
    <item>
      <id>2</id>
      <name>cyc1</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
  </items>
</epay>
cyc==== Size:2
(maven)所续的pom文件:
<dependency>
		    <groupId>xstream</groupId>
		    <artifactId>xstream</artifactId>
		    <version>1.2.2</version>
		</dependency>

注意事项:如果想在java 项目中运行这个需要添加一些关联的包不然的话会报一个:

Exception in thread "main" com.thoughtworks.xstream.io.StreamException: Cannot create XmlPullParser
	at com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:56)
	at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1085)
	at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1076)
	at test.test3.main(test3.java:16)
Caused by: org.xmlpull.v1.XmlPullParserException: could not load any factory class (even small or full default implementation); nested exception is: 
	org.kxml2.io.XmlReader
	at org.xmlpull.v1.XmlPullParserFactory.newInstance(XmlPullParserFactory.java:225)
	at org.xmlpull.v1.XmlPullParserFactory.newInstance(XmlPullParserFactory.java:76)
	at com.thoughtworks.xstream.io.xml.XppDriver.createParser(XppDriver.java:57)
	at com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:54)
	... 3 more

© 著作权归作者所有

史上最强的弟子
粉丝 4
博文 27
码字总数 9353
作品 0
CTO(技术副总裁)
私信 提问
android下通过xstream解析xml格式信息

==========推荐============ 实例教程-----会员贡献索引贴 http://www.eoeandroid.com/thread-1987-1-1.html android 图像处理滤镜系列合集 http://www.eoeandroid.com/thread-178656-1-1.ht......

长平狐
2012/08/21
121
0
android下通过xstream解析xml格式信息

==========推荐============ 实例教程-----会员贡献索引贴 http://www.eoeandroid.com/thread-1987-1-1.html android 图像处理滤镜系列合集 http://www.eoeandroid.com/thread-178656-1-1.ht......

长平狐
2012/08/14
236
0
android下通过xstream解析xml格式信息

==========推荐============ 实例教程-----会员贡献索引贴 http://www.eoeandroid.com/thread-1987-1-1.html android 图像处理滤镜系列合集 http://www.eoeandroid.com/thread-178656-1-1.ht......

长平狐
2012/08/09
100
0
JavaBean到XML和JSON的转换

XML和JSON是当今常用的两种数据描述与传输的格式,特别是涉及到JS时使用JSON颇为频繁。自然,在Java的世界里少不了完成JavaBean与这两种格式相互转换的组件,那就是XStream和JSON-lib。这里我...

Idiot_s_Sky
2014/01/14
0
0
android下通过xstream解析xml格式信息

原文转自:http://marshal.easymorse.com/archives/1715 下面是一个xml文件的格式示例。 下载或者访问该xml文件:[Download not found] 如果解析上面的xml文件呢?这里选用了xstream,网址:...

华宰
2011/09/07
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

使用druid连接池的超时回收机制排查连接泄露问题

在工程中使用了druid连接池,运行一段时间后系统出现异常: Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is......

xiaomin0322
15分钟前
3
0
一.Android省电开发之性能优化

电量优化 Android应用开发中的网络、定位、传感器等都是比较耗电的特性,我们应该正确使用API来有效降低应用的耗电量。 1.BroadcastReceiver: 在代码实现中需要尽量避免无用操作代码的执行,...

天王盖地虎626
22分钟前
0
0
大数据安全 Ranger

简介 Apache Ranger提供一个集中式安全管理框架, 并解决授权和审计。它可以对Hadoop生态的组件如HDFS、YARN、Hive、HBase等进行细粒度的数据访问控制。通过Ranger统一的管理控制台界面,管理...

ericSM
25分钟前
3
0
一个媲美淘宝大秒杀系统的高性能架构设计思路

小编有话说:本文为纯干货技术文章,建议先转发、收藏再观看。 导论 曾经被问过好多次怎样实现秒杀系统的问题。昨天又在技术交流群被问到了。因此这里把我设想的实现秒杀系统的架构设计分享出...

老道士
25分钟前
5
0
[ESXi 6.5] 设置ESXi宿主机开机自动启动虚拟机

在百度上面找了一圈都是讲ESXi6.0之前的版本,在VMware vSphere Client上开启。 1、选择host主机——>右侧选择“配置”页签——>选择“虚拟机启动/关机” 2、点击右侧“属性”——>勾选“允许...

大道无形
30分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部