[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[备忘]XStream转换Element的文本内容

上一篇:[GDS]Sabre看PNR的退改规则
下一篇:[备忘]tomcat关闭localhost_access_log日志

添加日期:2018/4/19 17:00:07 快速返回   返回列表 阅读1394次
Xstream官网:http://x-stream.github.io/alias-tutorial.html

---------------------------------------------------------
<XXX id="1234">哈哈</XXX>
如这种,bean定义为
public class XXX{
    private String content;

    private String id;
}
转换时,这样
xstream.alias("XXX", XXX.class);
xstream.aliasAttribute(XXX.class, "id", "id"); //属性
是可以转换属性id的,但是文本内容怎么搞呢?
---------------------------------------------------------
这样,加一行注解就行了
@XStreamConverter(value=ToAttributedValueConverter.class, strings={"content"})
public class XXX{
    private String content;

    private String id;
}
另外还得
xstream.autodetectAnnotations(true); //读取类中的注解
才行。
-----------------------------------------------------------
另外的方法是自己写转换类,参考:

class FieldDtoConvertor implements Converter {
    @SuppressWarnings("unchecked")
    public boolean canConvert(final Class clazz) {
        return clazz.equals(FieldDto.class);
    }

    public void marshal(final Object value,
            final HierarchicalStreamWriter writer,
            final MarshallingContext context) {
        final FieldDto fieldDto = (FieldDto) value;
        writer.addAttribute(fieldDto.getAttributeName(), fieldDto.getAttributeValue());     
    }
}
final XStream stream = new XStream(new DomDriver());
stream.registerConverter(new FieldDtoConvertor());
 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved