2015-09-25 52 views
1

我寻求帮助与XML的转换通过XStream的反对,这是我的XML转换XML到对象的XStream(安卓)

<main> 
     <listDTO> 
      <MyObject> 
       <test>value1</test> 
      </MyObject> 
      <MyObject> 
       <test>value2</test> 
      </MyObject> 

     </listDTO> 
</main> 

这里有我的课。

public class First{ 
     MyObject[] listDTO; 
} 

public class MyObject{ 
     String test; 
} 

使用XStream:

... 
XStream xStream = new XStream(); 
xStream.alias("main",First.class); 
xStream.alias("listDTO", MyObject.class); 
xStream.addImplicitCollection(First.class,"listDTO"); 

.... 

标签<listDTO>是一个问题,我不能改变的XML。这些类是使用Eclipse从wsdl生成的。

你能帮我吗?

回答

0

您的代码应该是这样的:

XStream xStream = new XStream(); 
xStream.alias("main", First.class); 
xStream.alias("MyObject", MyObject.class); 

首先,你没有隐式集合,而是明确一个由listDTO标签标示。随着隐式集合你的XML是:你已经

<main> 
    <MyObject> 
     <test>value1</test> 
    </MyObject> 
    <MyObject> 
     <test>value2</test> 
    </MyObject> 
</main> 

而第二个错误是将listDTO别名MyObject类。应将其替换为MyObject别名,因为在您的XML中定义的MyObject标记对应于MyObject类。

+0

谢谢,它的工作! –