2012-04-11 33 views
0

我有一個帶有重複數組元素的xml,我該如何反序列化它?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; 
} 

我已經試過清單,清單[],但他們沒有工作。

+0

兩個變量如何與數組具有相同的名稱?不明白:(你是從哪裏得到xml的,源代碼是什麼?XSD? – titogeo 2012-04-11 19:16:52

+0

抱歉,混淆了,標籤名稱不一樣。更新了上面的xml。xml的源代碼是一些遺留的應用程序,它沒有甚至有一個xsd。 – Taranfx 2012-04-12 03:20:07

回答

1

首先這只是整個xml文檔的一部分? 如果是

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

這是序列化形式

values [] root = {new values("afa", null), new values(null, "hkjvlk")}; 

其中類值將看起來像這樣

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

xml標記重複。不知道你的解決方案如何幫助在這種情況下 – Taranfx 2012-04-12 13:50:04

+0

每個值是一個根數組元素,不是嗎? – titogeo 2012-04-13 05:37:33