xml文件内容:
<list>
<storagePool>
<name>isopool</name>
<path>/vms/isos</path>
<type>dir</type>
<totalSize>4983</totalSize>
<freeSize>4810</freeSize>
<status>1</status>
</storagePool>
<storagePool>
<name>defaultpool</name>
<path>/vms/images</path>
<type>dir</type>
<totalSize>4983</totalSize>
<freeSize>4771</freeSize>
<status>1</status>
</storagePool>
</list>
//测试代码
public static void main(String[] args) throws IOException {
//由XML转化成JavaBean
String filePath = "E:\\杂乱代码\\store.xml";
String xml = FileUtil.readFileContent(filePath);
System.out.println(xml);
XStream xstream = new XStream(new DomDriver());
xstream.processAnnotations(H3CVMStoragePoolList.class);//必须把根目录注册进去
H3CVMStoragePoolList h3CVMStoragePoolList = (H3CVMStoragePoolList) xstream.fromXML(xml);
for(H3CVMStoragePool temp : h3CVMStoragePoolList.getList())
{
System.out.println(temp.getName());
}
//由bean转化成xml的String
H3CVolumAdd h3CVolumAdd = new H3CVolumAdd();
h3CVolumAdd.setHostId(1124);
h3CVolumAdd.setSpName("/df/df/df/df");
h3CVolumAdd.setVolName("/fg/fg/fg");
h3CVolumAdd.setBaseFile("/fgh/ghgfh");
XStream xstream1 = new XStream(new DomDriver());
//使用@XStreamOmitField对不生成xml的字段加注释
//然后代码中使用xstream.autodetectAnnotations(true);就可以完成去掉属性了
xstream1.autodetectAnnotations(true);
String volAddXml = xstream1.toXML(h3CVolumAdd);
System.out.println(volAddXml);
}
@XStreamAlias("list")//这个注释必须有
public class H3CVMStoragePoolList implements Serializable{
private static final long serialVersionUID = 1L;
@XStreamImplicit(itemFieldName="storagePool")//这个注释必须有
private ArrayList<H3CVMStoragePool> list;
public ArrayList<H3CVMStoragePool> getList() {
return list;
}
public void setList(ArrayList<H3CVMStoragePool> list) {
this.list = list;
}
}
@XStreamAlias("storagePool") //这个注释必须有
public class H3CVMStoragePool implements Serializable{
private static final long serialVersionUID = 1L;
String name;
String path;
String type;
long totalSize;
long freeSize;
int status;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public long getTotalSize() {
return totalSize;
}
public void setTotalSize(long totalSize) {
this.totalSize = totalSize;
}
public long getFreeSize() {
return freeSize;
}
public void setFreeSize(long freeSize) {
this.freeSize = freeSize;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
@XStreamAlias("volAddParameter")//这个注释信息必须有的
public class H3CVolumAdd {
private long hostId;
private String spName;
private String volName;
private long capacity;
private String format;
//使用@XStreamOmitField对不生成xml的字段加注释
//然后代码中使用xstream.autodetectAnnotations(true);就可以完成去掉属性了
@XStreamOmitField
private String baseFile;
public long getHostId() {
return hostId;
}
public void setHostId(long hostId) {
this.hostId = hostId;
}
public String getSpName() {
return spName;
}
public void setSpName(String spName) {
this.spName = spName;
}
public String getVolName() {
return volName;
}
public void setVolName(String volName) {
this.volName = volName;
}
public long getCapacity() {
return capacity;
}
public void setCapacity(long capacity) {
this.capacity = capacity;
}
public String getFormat() {
return format;
}
public void setFormat(String format) {
this.format = format;
}
public String getBaseFile() {
return baseFile;
}
public void setBaseFile(String baseFile) {
this.baseFile = baseFile;
}
}
相关推荐
与传统的XML序列化方式相比,Xstream的优势在于它无需编写额外的辅助类或映射文件,简化了XML序列化的流程。 #### 二、Xstream基本使用 Xstream的使用非常简单直观,下面通过一个简单的示例来展示如何使用Xstream...
总之,XStream 提供了一种方便、灵活的方式来处理 Java 对象和 XML 数据之间的转换,其简洁的 API 和宽松的要求使得它成为许多 Java 开发者的首选工具。在实际项目中,根据需求,还可以探索更多高级特性和定制选项,...
在提供的压缩包文件中,可能包含了使用 XStream 进行序列化和反序列化的示例代码,你可以通过运行这些代码更深入地了解其工作原理和使用方式。学习并理解 XStream 的用法,可以帮助你在 Java 开发中更加高效地处理 ...
Xstream是一款Java库,它提供了简单且强大的方式来序列化和反序列化Java对象到XML,以及从XML回转换为Java对象。在本文中,我们将深入探讨Xstream的核心概念、使用场景以及如何通过实例进行操作。 首先,Xstream的...
XStream是一个功能丰富的库,提供了一种简洁的方式来处理Java对象和XML/JSON之间的转换。通过理解和掌握其核心特性、安全性设置以及自定义转换器,开发者可以在项目中充分利用XStream的优势,提高代码的可读性和可...
XStream库提供了一个优雅的方式来将Java对象转换为XML,反之亦然,使得处理XML数据变得更加简单。本教程将深入探讨如何使用XStream进行XML操作。 一、XStream简介 XStream是一个开源库,由Johannes Link开发,它...
本篇将详细讲解XML的解析方式及其在Java中的应用,特别是如何使用XStream库进行JavaBean与XML之间的互转。 1. **XML解析方式** - DOM解析:Document Object Model,它一次性加载整个XML文档到内存,形成一棵树形...
使用xstream来读取xml文件的demo,该demo中,使用了支付宝对账单返回的xml为列子来展示使用xstream的注解的方式读取xml,并且转成实体类.学习xstream或者对xstream有疑问的可以参考下..之所以使用支付宝账单返回的xml是...
xstream方式解析及生成xml文件
xStream是一个轻量级的库,它提供了一种简单的方式来将Java对象序列化为XML,反之亦然。这个工具类的目标就是利用xStream的功能,方便地将XML文档转换为Java Bean对象,以及将Bean对象转换为XML字符串。 xStream的...
**XStream Java下的使用** ...总之,XStream为Android开发者提供了一种方便的方式来处理XML数据,无论是在本地存储还是网络通信中。理解并熟练使用它的核心功能和扩展选项,将有助于提高代码的可读性和可维护性。
在这个场景中,"使用XStream多集合生成xml"是一个关键的技术点,它涉及到如何将多个集合类的对象转换成XML文档。以下是对这一主题的详细说明。 首先,我们需要了解XStream的基本用法。XStream的核心是`XStream`类,...
总结起来,Xstream通过注解提供了一种简洁、直观的方式来处理XML和Java对象之间的转换。这种灵活性使得在Java项目中处理XML数据变得更加简单,尤其在需要频繁进行序列化和反序列化的场景下。通过熟练掌握Xstream的...
这个“xStream完整Jar包”很可能包含了 XStream 库的所有组件,包括核心库、相关的依赖和可能的示例代码,以确保用户在使用过程中不会遇到因缺少依赖而导致的错误。 **XML 序列化与反序列化** XStream 的主要功能...
XStream是由Joe Walnes创建的一个开源项目,它提供了一种简单的方式来将Java对象转换为XML,反之亦然。它的核心理念是通过简单的注解或反射来处理对象到XML的映射,这使得XML数据的处理变得更加直观和易于理解。 在...
XStream的核心功能是提供了一种直观的方式来将Java对象转换为XML,并能从XML还原为等效的Java对象。这个过程被称为对象绑定。XStream通过使用自定义的转换器(Converter)和数据类型的安全性,使得这个转换过程既...
下面我们将详细探讨`XStream`的使用方法和特性。 首先,创建`XStream`对象是通过`new XStream()`完成的。双向转换是`XStream`的核心功能,`toXML()`方法用于将Java对象转换为XML字符串,而`fromXML()`方法则相反,...
Java中的xStream库提供了一个简单易用的方式来将Java对象序列化为XML,反之亦然,即反序列化XML回Java对象。 **xStream简介** xStream是一个开源的Java库,由Johannes Link创建。它提供了简洁、直观的API来处理XML...
5. 支持泛型:尽管Java泛型信息在编译后丢失,但XStream可以通过注解或其他方式来恢复这些信息,从而支持泛型类的序列化和反序列化。 6. 高效性能:XStream设计精良,执行效率高,特别是在处理大量数据时,其性能...
XStream库提供了一个简单、直观的方式来实现这种转换,使得XML序列化和反序列化变得非常方便。本篇将详细介绍XStream如何处理XML与Java对象的相互转换,以及如何处理List、Map等集合类型的数据。 首先,XStream是一...