# Liste voller Objekte und Werte in XML via XStream



## hjema (23. Jun 2010)

erledigt


----------



## isowiz (27. Jun 2010)

Oh man wie ich das hasse. Mich hat Google hier her geführt. Und ich frage mich, warum Du - der Threadstartet - uns nicht an Deinem Wissen teilhaben läßt?

Stell Dir mal vor jeder würde Forenposts so abschließen wie Du. Dann wünsch ich DIR viel Spass bei Deiner Googlesuche, wenn DU mal ein Problem hast.


----------



## hjema (27. Jun 2010)

Hallo zusammen,

bin in Sachen XML absoluter Anfänger.

Bei meinem Topic handelt es um die Erstellung einer XML, die alle Änderungen eines "bestimmten Files" (sprich Ihre Metainformationen abspeichert.)

Ich habe bereits über XStream den Code soweit, dass er mir eine XML erstellt mit Informationen, wie den Autor, das Erstellungsdatum und der Version. Bei jedem Durchlauf versioniert er das File auch um eins hoch. Überschreibt jedoch die alten Informationen. Ich möchte es jedoch folgendermaßen haben, dass er mir die alten Versionen und ihre Metadaten nicht überschreibt, sondern viel mehr als eine Arraylist abspeichert, um somit zu einem späteren Zeitpunkt auch diese Informationen auslesen zu können.

Hier müsste ich etwas wie hier einfügen: 

```
private List entries = new ArrayList();
```

Meine Frage ist nun, "muss" ich zwingend verschiedene Klassen anlegen, wie bspw. "Version.class", "Author.class" usw... oder kann ich die verschiedenen Einträge auch in eine packen...die meisten Tutorials schlagen hier verschiedene Klassen vor?

Wäre für ne Hilfe sehr dankbar!!

Danke & Viele Grüße



```
public void checkIn(File filepath)
    {               
        XStream xstream = new XStream(new DomDriver());
        File xmlFile = new File(filepath.toString()+".xml");
        if(xmlFile.exists()){
            try{
                VersionManager oldVersion = new VersionManager();               
                FileInputStream fis = new FileInputStream(xmlFile.toString());
                
                
                xstream.fromXML(fis, oldVersion);
                int version = oldVersion.incVersion();
                FileOutputStream fs = new FileOutputStream(filepath.toString()+".xml");
                xstream.toXML(oldVersion, fs);
                xstream.alias("versionmanager", VersionManager.class);
                xstream.alias("entry", VersionManager.class);
                
                System.out.println(version);
            }
            catch(Exception e){
                e.printStackTrace();
            }
    }
        else{
            Date date = new Date();
            VersionManager temp = new VersionManager(xmlFile.toString(), 1, false, date, filepath.getName());
            try{
                FileOutputStream fs = new FileOutputStream(filepath.toString()+".xml");
                xstream.toXML(temp, fs);
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
        }
```


----------



## hjema (27. Jun 2010)

isowiz hat gesagt.:


> Oh man wie ich das hasse. Mich hat Google hier her geführt. Und ich frage mich, warum Du - der Threadstartet - uns nicht an Deinem Wissen teilhaben läßt?
> 
> Stell Dir mal vor jeder würde Forenposts so abschließen wie Du. Dann wünsch ich DIR viel Spass bei Deiner Googlesuche, wenn DU mal ein Problem hast.




Hallo isowiz,

muss Dir zustimmen. 
Da ich am Ende keine Hilfe erhalten hatte, hatte ich meine Anfrage entfernt. 
SORRY....

Letztendlich bin ich über XStream - Object Streams Tutorial auf die Lösung gekommen, hier ist alles bestens erklärt. Sollte ich helfen können, lass es mich wissen...


VG


----------

