1.addImplicitCollection
类里面包含一个List变量在读取xml配置的时候是很常见的情况,比如:
有三个类:AuditTrail, AuditTrailEntry, AuditTrailEntryField,要读取的xml:
<AuditTrail>
<Entry type="ExecutionReport" msgId="2544804979">
<field tag="35" val="8"/>
<field tag="34" val="000023"/>
<field tag="43" val="N"/>
<field tag="52" val="20090526-20:08:31"/>
<field tag="6556" val="today12"/>
<field tag="17" val="73740.1243368511.0"/>
<field tag="32" val="*"/>
</Entry>
<Entry type="Acknowledged" msgId="1540251818">
</Entry>
</AuditTrail>
如果你仅仅是做类的alias:
XStream xStream = new XStream ();
xStream.alias ("AuditTrail", AuditTrail.class);
xStream.alias ("Entry", AuditTrailEntry.class);
xStream.alias ("field", AuditTrailEntryField.class);
就会抛异常:ConversionException: Element [NAME] of type [TYPE]
is not defined as [NAME] in type [TYPE]
解决办法就是addImplicitCollection,它会告诉xstream,有一个隐式的collecton存在:
xStream.addImplicitCollection (AuditTrailEntry.class, "fields");
xStream.addImplicitCollection (AuditTrail.class, "entries");
(其中, List <AuditTrailEntryField> fields定义在 class AuditTrailEntry
List <AuditTrailEntry> entries 定义在 class AuditTrail.)
2.useAttributeFor
设置某个节点显示到父节点的属性中,也就是将指定class中的指定属性,在这个class元素节点的属性中显示。
如:<student><name>hoojo</name></student>
设置好后就是这样的结果:<student name=”hoojo”></student>
3.aliasAttribute
修改属性名称.比如stream.aliasAttribute(NpcAiConfig.class,"aid","id"),表示类NpcAiConfig有一个变量aid,它对应的是xml里面的id属性
分享到:
相关推荐
《XStream详解与应用》 XStream是一款强大的Java库,用于将对象序列化为XML,同时也能从XML数据中反序列化回对象。在标题"xstream-1.4.2.jar"中,我们看到的是XStream的一个特定版本——1.4.2。这个版本包含了...
Xstream上次对CVE-2020-26217处理并不彻底,虽然通过黑名单方法阻止了远程代码执行,但是仍然可以采用类似思路实现文件删除与服务器请求伪造。 影响版本 Xstream 修复版本 Xstream > = 1.4.15 风险等级 严重
XStream的核心在于`toXML()`方法,它可以将任何Java对象转换成XML字符串。例如,如果你有一个简单的User类,包含name和age属性,你可以这样转换: ```java User user = new User("Alice", 25); XStream xstream...
xstream-1.4.19.jar
XStream 还支持流式处理 XML,这对于处理大量数据非常有用。可以使用 `XppDriver` 或 `StaxDriver` 驱动来实现。 ### 9. **与其他框架集成** XStream 可以轻松地与 Spring、Hibernate 等其他框架集成,用于持久化...
XStream在运行时使用Java反射机制对要进行序列化的...XStream支持以方法调用的方式,或是Java 标注的方式指定别名。 XStream在进行数据类型转换时,使用系统缺省的类型转换器。同时,也支持用户自定义的类型转换器。
1. **xstream-1.4.9.jar**:这是XStream的核心库,包含了所有必要的类和方法来实现对象到XML的转换和反转换。版本1.4.9是当前稳定版本,提供了许多性能优化和错误修复。 2. **dom4j-1.6.1.jar**:DOM4J是一个流行的...
XStream提供了一些选项来提升效率,比如使用缓存来避免重复的类型检查: ```java xstream.cacheReflectionProvider(new ReflectionProvider() {...}); ``` **总结** XStream是一个功能丰富的库,提供了一种简洁的...
1. **基本序列化与反序列化**:通过`XStream.fromXML()`和`xstream.toXML()`方法,可以轻松地完成对象到XML的转换和XML到对象的还原。 2. **类型安全的序列化**:通过`xstream.allowTypes()`方法,可以指定允许序列...
双向转换是`XStream`的核心功能,`toXML()`方法用于将Java对象转换为XML字符串,而`fromXML()`方法则相反,将XML字符串转换回Java对象。 默认情况下,`XStream`会将Java类的成员名映射为XML元素名,类的全名作为XML...
### XStream解析各种数据格式 #### 一、XStream简介 XStream 是一个简单高效的 Java 库,用于将 Java 对象序列化为 ...通过本文介绍的基本使用方法和高级特性,开发者可以更好地利用 XStream 来满足项目的实际需求。
4. **对象转换为XML**:在`getXmlResponse()`方法中,创建一个User对象,然后使用XStream将其转换为XML字符串。 ```java User user = new User(); // 初始化user对象... String xmlResponse = xstream.toXML...
赠送jar包:xstream-1.4.11.jar; 赠送原API文档:xstream-1.4.11-javadoc.jar; 赠送源代码:xstream-1.4.11-sources.jar; 赠送Maven依赖信息文件:xstream-1.4.11.pom; 包含翻译后的API文档:xstream-1.4.11-...
XStream支持自定义类型转换器,当处理特定复杂类型的对象时非常有用。通过实现`com.thoughtworks.xstream.converters.Converter`接口并注册到XStream实例中,可以控制对象到XML的转换过程。 五、安全与配置 由于...
此外,XStream 还支持从 XML 反序列化回 Java 对象,只需调用 `fromXML` 方法即可。这些基本操作构成了使用 XStream 进行对象序列化和反序列化的核心。 总之,XStream 提供了一种方便、灵活的方式来处理 Java 对象...
在`beanToXml()` 方法中,同样需要初始化xStream实例,然后使用`toXML()` 方法将Bean对象转换为XML字符串: ```java public String beanToXml(YourBeanClass bean) { XStream xstream = new XStream(new DomDriver...
1. **序列化**: XStream 可以将Java对象转换成XML字符串,这在需要持久化数据或者在网络间传输数据时非常有用。通过`toXML()`方法,你可以轻松地将任何Java对象转换为XML格式。 2. **反序列化**: 相反,XStream也能...
我们来深入探讨XStream的核心功能和使用方法。 首先,XStream的核心理念是提供一种直观的方式来映射Java对象和XML结构。通过简单的配置,XStream可以自动处理JavaBean到XML的转换,无需编写大量的XML解析代码。对于...
在实际使用中,`xstream-1.3.1.jar`文件是XStream的库文件,包含了所有必要的类和方法,可以直接导入到Java项目中使用。为了更好地理解和利用XStream,开发者应深入研究其API文档,学习如何配置转换器,处理嵌套的...