xStream XML into ArrayList



是的,我已经阅读并重新阅读了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 应答器上注明归属。或者您必须添加应答器才能准确区分每个列表。

回头见。

扬恩

最新更新