码迷,mamicode.com
首页 > 其他好文 > 详细

基于Xstream工具解决对象到xml文本的集合节点重复问题

时间:2015-03-29 18:03:27      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:解决方案   xml   

http://blog.csdn.net/cqstart116/article/details/44495979
继如上链接博客之后,具体问题的解决方案

  • 效果xml样例
<?xml version="1.0" encoding="utf-8"?>
<root>
    <BASE_DATA>
        <USER_CODE>0001</USER_CODE>
        <USER_NAME>0001</USER_NAME>
        <ORG_CODE>010</ORG_CODE>
        <COM_CODE>010</COM_CODE>
        <ORG_NAME>010</ORG_NAME>
        <ROLE_CODE>1</ROLE_CODE>
    </BASE_DATA>  
    <META_DATA>
        <IMAGE_TYPES>
            <IMAGE_TYPE>021</IMAGE_TYPE>
            <IMAGE_TYPE>022</IMAGE_TYPE>
        </IMAGE_TYPES>
        <BATCH>
            <APP_CODE>A21</APP_CODE>
            <BUSI_NUM>0000**************025</BUSI_NUM>
        </BATCH>
    </META_DATA>
</root>
  • step1:java对象编写
 public class BaseData {
    @XStreamAlias("USER_CODE")
    private String userCode;
    @XStreamAlias("USER_NAME")
    private String userName;
    @XStreamAlias("ORG_CODE")
    private String orgCode;
    @XStreamAlias("COM_CODE")
    private String comCode;
    @XStreamAlias("ORG_NAME")
    private String orgName;
    @XStreamAlias("ROLE_CODE")
    private String roleCode;

    //getter及setter
    ... ...
}

应注意的此对象的差异(对属性imageTypes的处理方式)

public class MetaData {
    @XStreamAlias("BATCH")
    private Batch batchNode;
    @XStreamAlias("IMAGE_TYPES")
    private List<String> imageTypes = new ArrayList<String>();
    @XStreamAlias("COUNT_PER_PAGE")
    private String countPerPage;
    //此处注意,针对重复命名之后转换为xml节点嵌套的解决方案
    //将节点(IMAGE_TYPES)作为集合对象处理
    public void add(String imageType){
        this.imageTypes.add(imageType);
    }

    //除属性:imageTypes之外,setter及getter
    ... ...
}
public class Batch{
    @XStreamAlias("APP_CODE")
    private String appCode;
    @XStreamAlias("BUSI_NUM")

    //getter及setter
    ... ...
}
@XStreamAlias("root")
public class Query {
    @XStreamAlias("BASE_DATA")
    private BaseData baseData;
    @XStreamAlias("META_DATA")
    private MetaData metaData;

    //getter及setter
    ... ...
}
  • java关键代码
    ......
    XStream xStream=new XStream(new DomDriver("UTF-8", new XmlFriendlyReplacer("-_", "_")));
    xStream.addImmutableType(ImageTypeBean.class);
    xStream.alias("IMAGE_TYPE", String.class);
    xStream.autodetectAnnotations(true);
    String str= xStream.toXML(query);
    ......

基于Xstream工具解决对象到xml文本的集合节点重复问题

标签:解决方案   xml   

原文地址:http://blog.csdn.net/cqstart116/article/details/44728403

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!