近来遇到的编程过程中需要对XML进行大量的处理,java是面向对象的,所以要把XML的处理转化为面向对象的处理.下面记录下我用XStream进行XML与对象的转换过程.
public class XmlUtils {
private static XStream xstream;
static {
xstream = new XStream(new DomDriver("UTF-8", new XmlFriendlyNameCoder("-_", "_")));
}
/**
* XML to object.
*
* @param inputXml
* XML string.
* @param types
* annotation classes.
* @return
* @throws Exception
*/
public static Object xml2Object(String inputXml, Class<?>[] types) throws Exception {
if (null == inputXml || "".equals(inputXml)) {
return null;
}
xstream.processAnnotations(types);
return xstream.fromXML(inputXml);
}
/**
* object to XML.
*
* @param ro
* Object.
* @param types
* annotation classes.
* @return
* @throws Exception
*/
public static String object2Xml(Object ro, Class<?>[] types) throws Exception {
if (null == ro) {
return null;
}
xstream.processAnnotations(types);
return xstream.toXML(ro);
}
}
对生成xml中__替换_的最新写法是:xstream = new XStream(new DomDriver("UTF-8", new XmlFriendlyNameCoder("-_", "_")));
网上很多用这种XStream xstream = new XStream(new XppDriver(new XmlFriendlyReplacer("-_", "_")));
帮助文档上明确写明
/**
* @since 1.2
* @deprecated As of 1.4, use {@link #DomDriver(String, NameCoder)} instead.
*/
说明1.4已经废弃了这种做法.
处理过程中都用了annotations来处理对象,下面是其中一个对象的例子
import com.thoughtworks.xstream.annotations.XStreamAlias;
@XStreamAlias("RESULT")
public class ResultObject {
@XStreamAlias("RTNCODE")
private String rtncode;
@XStreamAlias("MESSAGE")
private String message;
@XStreamAlias("CONTENT")
private Content content;
...省略了get, set方法
下面是使用XmlUtils 的测试例子
try {
Class<?>[] types = new Class[] { ResultObject.class, Content.class};
resultXml = XmlUtils.object2Xml(ro, types);//其中ro是要转换的对象
System.out.println(resultXml);
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
//下面是转换xml成对象的测试代码
InputObject io = (InputObject) XmlUtils.xml2Object(str, new Class[] { InputObject.class });
其中str是xml格式字符串.
经过测试,转换效率还挺高.
如有问题,请联系我.谢谢,如转载请注明出处.
分享到:
相关推荐
XStream是一个轻量级、高性能的库,能够将Java对象序列化为XML,同时也能将XML反序列化回Java对象,实现XML和Java对象的互相转换。 首先,我们需要引入XStream库。在给定的描述中提到了两个依赖文件:xstream-1.3.1...
本篇文章将深入探讨xStream如何实现Java对象与XML和JSON的相互转换,并提供详细的代码示例。 ### 1. xStream的安装与引入 首先,你需要在项目中添加xStream的依赖。如果你使用的是Maven,可以在pom.xml文件中添加...
在使用 XStream 进行序列化时,我们首先需要创建一个 `XStream` 实例,然后调用 `toXML()` 方法,传入要转换的 Java 对象。这将返回一个表示该对象的 XML 字符串。例如: ```java XStream xstream = new XStream();...
这篇博客“xstream 让javabean和xml互相转换”深入探讨了如何利用XStream库实现这一功能。 XStream的核心思想是通过反射机制,将Java对象的字段映射到XML的元素和属性,以及反向操作将XML解析回Java对象。它的优势...
XStream是一个强大的库,专门用于XML与Java对象之间的互相转换。这篇博文将深入探讨如何利用XStream的转换器功能来优化这一过程。 XStream的核心原理是通过反射机制自动将Java对象映射到XML结构,并反之亦然。然而...
总的来说,XStream是一个功能丰富的库,它使得Java对象与XML之间的转换变得简单易行。通过理解和掌握XStream的用法,开发者可以更高效地处理数据序列化需求,无论是在存储、传输还是解析XML文档的场景下。
标题中的“使用XStream是实现XML与Java对象的转换(5)--Object Stream”指的是一个关于XStream库在Java中如何将XML数据与Java对象进行互相转换的教程系列的第五部分,重点可能是关于“Object Stream”的内容。XStream...
它可以将Java对象转换为XML文档,也可以将XML文档转换为Java对象。 pom引用 <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream <version>1.4.20 实体类和测试类详见博客 ...
XStream库则是Java世界中一个强大的工具,它能够方便地实现XML和JSON与Java对象之间的互相转换。这篇博客文章,标题为“xStream学习xml,JASON,JAVA对象转换”,显然会探讨如何利用XStream来处理这两种数据格式。 ...
Java对象与XML之间的转换是Java开发中常见的需求,特别是在数据交换、配置文件存储或Web服务交互等场景。本文将深入探讨如何实现Java对象到XML以及XML到Java对象的转换。 首先,Java对象到XML的转换通常涉及到Java...
在Java开发中,将XML与对象互相转换是常见的需求,这时就需要用到像XStream这样的库。 XStream是一个开源的Java库,它提供了一种简单的方式来序列化和反序列化Java对象到XML,反之亦然。它的主要优点在于其易用性和...
- 使用Apache的JAXB(Java Architecture for XML Binding):JAXB允许将XML绑定到Java对象,然后再将这些对象转换为JSON。 2. JSON到XML转换: - Jackson库同样提供了反向转换功能,使用`writeValueAsString`方法...
3. 第三方库:除了标准的Java库,还有许多第三方库如Apache's Digester、Castor和XStream等,它们提供了更简洁的API来简化XML与JavaBean之间的转换。 4. XMLBeans库:压缩包中的"xmlbean"可能指的是Apache的...
这篇内容将主要介绍如何利用xUtils进行断点下载、XStream库实现XML与JavaBean之间的互相转换,以及如何启动本地音乐播放器。这些技术都是Android应用开发中常见的需求,对提升用户体验和应用功能具有积极的作用。 ...
4. **Gson**:Gson是Google提供的一个Java库,用于在Java对象和JSON数据之间进行互相转换。在这个例子中,Gson可能被用到了后台数据与前端Ajax交互的过程中,将Java对象转换成JSON字符串,通过Ajax发送到客户端,...
- JaxbMapper: XML与Object之间的互相转换。 - JsonMapper: JSON与Object之间的互相转换。 - Cryptos、Digests: 密钥工具类(SHA1、MD5)。 - Collections3: 集合对象工具类。 - Encodes: 各种编码转换工具类。 ...