用XStream进行xml转java对象的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用XStream进行xml转java对象的问题相关的知识,希望对你有一定的参考价值。

根据xml转换javabean的时候,同样的的节点名会返回不同类型的数据,比如成功返回:
<RETURN>
<RETURNMSG>
<MSG1>1</MSG1>
<MSG2>2</MSG2>
</RETURNMSG>
</RETURN>
如果失败返回
<RETURN>
<RETURNMSG>failed</RETURNMSG>
</RETURN>
成功返回一个List,失败返回一个String。怎样根据返回的报文进行xml到javabean的转换。

参考技术A XStream xStream = new XStream();
xStream.aliasType("LoginRsp", LoginRsp.class);

Object o = xStream.fromXML(ClassLoader.getSystemResourceAsStream("xxx.xml"));
System.out.println(o);本回答被提问者和网友采纳

用XStream 转换java对象成xml的一个疑问

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

public static void main(String[] args) SchemaAppearInfo schema = new SchemaAppearInfo(); List<QuaInsTask> taskNews = new ArrayList<QuaInsTask>(); QuaInsTask taskNew = new QuaInsTask(); taskNew.setTaskId("id1"); taskNew.setAlias("bieming1"); List<MaterialName> ms = new ArrayList<MaterialName>(); MaterialName m = new MaterialName(); m.setMaterialCode("code"); ms.add(m); taskNew.setMaterialNames(ms); taskNews.add(taskNew);
schema.setQuaInsTasks(taskNews); //转换成XML String xml = WsdXStreamUtils.marshal(schema);


我实际是想实现 <牌号名称 牌号代码="code"> xxxName <牌号名称>
盼等高手帮我解决这个问题

参考技术A

参考技术B 这个没用过,但是根据经验,应该是一个
set方法就能解决的,是schema的方法或者
String xml = WsdXStreamUtils.marshal(schema);的时候加个参数之类的。
这个具体解决你看api吧。追问

我之前看过,api 和网上找的资料都是实现类似于

name

这样的实现,如果想以下这样
name
则充满了现实的尖锐的矛盾marshal参数有占位替换,也就是说用Xstream annotation无法实现了

追答

改源码呗,没有反编译工具?
这个是导入的jar包吧。这个其实也应该就是个拼字符串的程序,自己改一下也行啊。

参考技术C 我用jaxb实现过这个,但是xtream没有试过,给你一个例子 http://www.oschina.net/code/snippet_557540_18576追问

非常感谢,只是看到这个链接上面的示例,确实是可以,他对象标签建立和我是一样的

utf-8\
......

问题是比如怎么给parm赋值urf-8呢?也就是我怎么给materialNames赋值,这是个属性集合,里面元素是param 里面的name属性,这个帖子里面没写,你知道吗?

追答

我没有试过xtream的,这里有个jaxb的解决办法,你看看...估计是类似的情况:

本回答被提问者采纳
参考技术D 贴出完整代码,我调试看下追问

其实不用贴,就是一个实现方式,建两个类,分别就两三个属性,只要能出来这个效果就好

追答

我用的dom4j来建的xml,没有问题。

以上是关于用XStream进行xml转java对象的问题的主要内容,如果未能解决你的问题,请参考以下文章

xStream转换xml同名节点到java对象问题

day29(对象转xml(使用java))

Java对象表示方式2:XStream实现对对象的XML化

利用XStream实现对象XML话

用XStream 转换java对象成xml的一个疑问

xstream xml转化成java对象