微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

XStream 02

对象引用


啥也不说了,直接贴代码


public class Cd {
private String id;


private Cd bonusCd;


Cd(String id,Cd bonusCd) {
this.id = id;
this.bonusCd = bonusCd;
}


Cd(String id) {
this.id = id;
}


public String getId() {
return id;
}


public Cd getBonusCd() {
return bonusCd;
}
}



/*************************************************************/

import java.util.ArrayList;
import java.util.List;


import com.thoughtworks.xstream.io.xml.DomDriver;
import com.thoughtworks.xstream.io.xml.StaxDriver;


public class XstreamDemo {


public static void main(String[] args){
Cd bj = new Cd("basement_jaxx_singles");

List order = new ArrayList();
// adds the same cd twice (two references to the same object)
order.add(bj);
order.add(bj);
order.add(bj);
order.add(bj);
// adds itself (cycle)



XStream xstream = new XStream();//必须加载xxp3jar包
// XStream xstream = new XStream(new StaxDriver());//不需加载xxp3,jdk可以小于1.6
// XStream xstream = new XStream(new DomDriver());//没有必要必须有xxp3jar
xstream.alias("cd",Cd.class);
/**
* 如何处理重复和循环引用XStream
*/
xstream.setMode(XStream.ID_REFERENCES);//id引用
// xstream.setMode(XStream.NO_REFERENCES);//没有引用
// xstream.setMode(XStream.XPATH_ABSOLUTE_REFERENCES);//绝对引用
// xstream.setMode(XStream.XPATH_RELATIVE_REFERENCES);//相对引用
//
// xstream.setMode(XStream.SINGLE_NODE_XPATH_ABSOLUTE_REFERENCES);//单节点选择器
// xstream.setMode(XStream.SINGLE_NODE_XPATH_RELATIVE_REFERENCES);//单节点选择器


System.out.println(xstream.toXML(order));
}
}

/******************引用id的输出*********************/
<list id="1">
<cd id="2">
<id>basement_jaxx_singles</id>
</cd>
<cd reference="2"/>
<cd reference="2"/>
<cd reference="2"/>
</list>


官方网站
对象引用
http://xstream.codehaus.org/graphs.html

原文地址:https://www.jb51.cc/xml/297243.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。