2012-04-11 8 views
0

Ich habe eine XML mit einem wiederholenden Array-Element, wie deserialisieren ich es?Xstream: Wie Xml mit Array deserialisieren

<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; 
} 

I Liste habe versucht, Inventar [], aber keiner von ihnen arbeiten.

+0

Wie können zwei Variablen denselben Namen wie Array haben? Bekomme es nicht :(Woher hast du das xml, was ist die Quelle? XSD? – titogeo

+0

Entschuldigung für die Verwirrung, die Tag-Namen sind anders. Aktualisiert das XML oben. Quelle von XML ist eine ältere App, die nicht habe sogar eine xsd. – Taranfx

Antwort

1

Zunächst ist dies nur ein Teil des gesamten XML-Dokuments? wenn ja

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

Dies ist die serialisierte Form von

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

wo Werte Klasse werden wie folgt aussehen

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

Das xml-Tag wiederholt. Nicht sicher, wie Ihre Lösung in diesem Fall hilft. – Taranfx

+0

Jeder Wert ist ein Root-Array-Element, nicht wahr? – titogeo