我正在尝试使用XStream注释创建一个java测试 来序列化/反序列化XML,如:
<book>
<title>Hello</title>
<author>Joe Smith</author>
<publisher city="Smallville">
<employees>25</employees>
<age>15</age>
</publisher>
<key type="1">XYZ</key>
</book>
我的大部分都在工作。我有一个使用@XStreamAlias(“book”)的Book对象。我使用相关别名创建并向书中添加Publisher对象,并使用城市的@XStreamAsAttribute注释。
但是,当我尝试创建代表“密钥”的对象时,我会陷入困境。基本上我需要一个名为key的元素,其属性名为“type”和数据。
书中的,如果我使用:
@XStreamAlias("key")
String key;
但是这并没有给我类型属性(显然)和if
@XStreamAlias("type")
@XStreamAsAttribute
String type;
我将该属性添加到Book对象(即
<book type="1">
....
</book>
我没有找到任何显示如何将属性添加到单个元素的示例。 XStream是否提供了这样做的方法?
谢谢!
答案 0 :(得分:1)
请参阅http://fahdshariff.blogspot.de/2011/12/using-xstream-to-map-single-element.html(不是我的网站)
从那里改编的答案是:
@XStreamAlias("error")
@XStreamConverter(value=ToAttributedValueConverter.class, strings={"message"})
public class Error {
String message;
int code;
}
这将生成以下XML:
<error code="99">This is an error message</error>