【问题标题】:How to convert xml into Java Object which contains ArrayList through XStream Library?如何通过 XStream 库将 xml 转换为包含 ArrayList 的 Java 对象?
【发布时间】:2014-12-18 07:04:16
【问题描述】:

我想将 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 文件解析为对象,以便我可以从列表中检索姓名、年龄和电话的值。我的方法在下面提到,但它会引发类似

的错误
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();

【问题讨论】:

  • 嗯...我搜索了xstream tutorial 并得到了很多。有什么问题吗?
  • 它为名称抛出了一些转换异常
  • 您发布的代码不会抛出任何东西。请编辑您的问题,通过显示符合问题描述的代码详细信息来完全解释您的问题。
  • 我已经提到了我的接触,希望现在你能解决问题,谢谢
  • 仍然缺少详细的问题描述。请在这个问题上付出一些努力,否则我们将无法提供帮助。

标签: java xml xstream


【解决方案1】:

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

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

public class Test{

private String Name;

//other field and getter setters

}

【讨论】:

  • 感谢您的回复...您能否详细说明一下这种方法,我是新手,所以无法理解...
  • 你还需要什么朋友
  • 正如你所说,我需要创建具有确切名称为 xml 的对象列表,你的意思是 xml 文件是 Test.xml ..我是对的?以及我需要在哪里声明这个 Stmt: private List list = new ArrayList();
  • 是的,如我的示例代码所示,您将在现有类中拥有测试类型列表,并且您需要此测试类具有字段名称、年龄和电话。嘿,您能否使用带有以大写字母开头的标签的 xml,例如 Age 和 Phone。与在 java 中一样,您将拥有以大写字母开头的字段名称。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-12
  • 1970-01-01
  • 2012-02-15
  • 1970-01-01
  • 2014-12-01
相关资源
最近更新 更多