是的,我已经阅读并重新阅读了codehause教程,但似乎无法确定问题所在。我怀疑这可能与自定义转换器有关,但在黑暗中拍摄之前想要一些清晰度。
我有一个带有字符串成员的对象和两个从 WSDL jar 文件中获取的列表成员。我读取了 XML { xstream.fromXML(MYFILE)
},然后强制转换为我的 ArrayList 以返回。这很好用,但我的问题是,不是将 listMember1 和 listMember2 设置为各自的数组,而是将 listMember1 设置为(listMember1 + listMember2)的集合,并且 listMember2 保持为空。
以前见过这个吗??我没主意了...感谢
下面是一些 XML:
<root>
<VCon>
<Role>
<fname>steve</fname>
<lname>jobs</lname>
</Role>
<Role>
<fname>steve</fname>
<lname>jobs</lname>
</Role>
<Role>
<fname>steve</fname>
<lname>jobs</lname>
</Role>
<Method>
<fname>steve</fname>
<lname>jobs</lname>
</Method>
<Method>
<fname>steve</fname>
<lname>jobs</lname>
</Method>
</VCon>
<VCon>
<Role>
<fname>steve</fname>
<lname>jobs</lname>
</Role>
<Role>
<fname>steve</fname>
<lname>jobs</lname>
</Role>
<Role>
<fname>steve</fname>
<lname>jobs</lname>
</Role>
<Method>
<fname>steve</fname>
<lname>jobs</lname>
</Method>
<Method>
<fname>steve</fname>
<lname>jobs</lname>
</Method>
</VCon>
</root>
以下是我的 xStream 别名的代码:
xstream.alias("listMember1", Role.class);
xstream.addImplicitCollection(VCon.class, "listMember1");
xstream.alias("listMember2", Method.class);
xstream.addImplicitCollection(VCon.class, "listMember2");
我认为问题出在您的 xml 结构中。尝试在 Vcon 应答器上注明归属。或者您必须添加应答器才能准确区分每个列表。
回头见。
扬恩