Xstream:如何使用数组反序列化Xml

时间:2012-04-11 18:40:45

标签: java xstream

我有一个带有重复数组元素的xml,如何反序列化呢?

<root>
 <values>
   <val1>afa</val1>
   <val2>asgfasg</val2>
 </values>
 <values>
   <val1>hkjvlk</val1>
   <val2>sdsdgsdg</val2>
 </values>
 ...
</root>

 XStream xstream = new XStream(new DomDriver());
 xstream.alias("values", Inventory.class);
 InventoryResult inventory = (InventoryResult) xstream.fromXML(data.toString());

&安培;

public class InventoryResult {
    private Inventory values;
}

我已经尝试了List,Inventory [],但没有一个能够正常工作。

2 个答案:

答案 0 :(得分:1)

首先,这只是整个xml doc的一部分吗? 如果是的话

<root>
    <values>
      <val1>afa</val1>
    </values>
    <values>
      <val2>hkjvlk</val2>
    </values>
  </root>

这是

的序列化形式
values [] root = {new values("afa", null), new values(null, "hkjvlk")}; 

其中Class值将如下所示

class values{
    String val1;
    String val2;
    public values (String str, String str1){
        val1 = str;
        val2 = str1;                
    }
}

答案 1 :(得分:1)

我建议编写自己的转换器:http://x-stream.github.io/converter-tutorial.html