如何通过XStream库将xml转换为包含ArrayList的Java Object?

时间:2014-12-18 07:04:16

标签: java xml xstream

我想将XML文件转换为具有数组的Java对象。目标是将xml值存储到对象的数组中。假设XML文件为:

<test>
     <Name> John</Nmae>
     <age>19</age>
     <phone>2225364</phone>
</test>

现在Java类就像:

public class TestArray
{
   private List list = new ArrayList();
   public display()
   {
        Iterator<String> itr = list.iterator();
        while(itr.hasNext())
        {
            System.out.println(itr.next());
         }
   }
 }

我想将xml文件解析为object,以便我可以从List中检索Name,Age和Phone的值。我的方法在下面提到,但它会抛出像

这样的错误
Exception in thread "main" com.thoughtworks.xstream.converters.ConversionException: Name : Name : Name : Name: 

我的方法:

FileReader fr = new FileReader("test.xml"); 
XStream xstream = new XStream(new StaxDriver());        
xstream.alias("test", TestArray.class); 
xstream.addImplicitCollection(TestArray.class,"list");
TestArray ta = (TestArray) xstream.fromXML(fr);
ta.display();

1 个答案:

答案 0 :(得分:0)

您需要创建具有确切名称为xml的对象列表,以便它可以映射它们。您需要为每组标签设置测试类。

private List<Test> list = new ArrayList<Test>();

public class Test{

private String Name;

//other field and getter setters

}