# Variablen in XML speichern



## PeterPan007 (13. Dez 2009)

Hallo zusammen,
ich würde gerne alle Variablen meines Programms in XML speichern. Das soll zur weiterverarbeitung sein und ich würde gerne später bestimmte Einstellungen speichern und wieder laden wollen.
Ich stelle mir eine Funktion wie add(String type, String, name, String stdWert) vor. Der Standardwert soll immer genommen werden, ausser man ändert ihn. Deshalb sollte es noch eine leeres Element wert oder so geben, wo der neue wert drin steht. Wenn da nichts drinsteht, soll der stdWert genommen werden. Die verändermethode hab ich mir so vorgestellt: change(String, type, String name, stdWert). Jetzt bräuchte ich natürlich noch eine getter Methode wie get(String type, String name). Wie kann ich das am bestern umsetzen? Das problem sehe ich bei der getter-Methode mit dem casten auf den richtigen typ. Kann mir da jemand helfen? Hab leider überhaupt keine ahnung von xml und hab schon versucht mir einiges anzulesen.

vielen dank und einen schönen tag,
Peter


----------



## Prismapanda (13. Dez 2009)

Was für Variablen sind das denn? Für einfache Key - Value Sachen würde ich einfach die Java Properties nehmen: Properties (Java Platform SE 6). Bei verschiedenen Datentype müsste man sich halt hinterlegen, welche Werte welchen Typ haben und entsprechend casten.
Für kompliziertere Objekte gibt es xml Serialisierungs Frameworks. Java selbst hat da den XMLDecoder (Java Platform SE 6). Ansonsten könnte man sich auch bspw. mal sowas wie XStream - About XStream anschauen.


----------



## PeterPan007 (13. Dez 2009)

vielen dank für die schnelle Antwort!!!
Also es sind nicht nur primitive Datentypen. Es können jederzeit neue Datentypen hinzukommen. Deshalb wollte ich wie du schon gesagt hast die ganzen Datentypen irgendwo hinterlegen und dann per Hand wenn ein neuer dazukommt dazuschreiben. Also würde da XStream am besten funktionieren?


----------



## Prismapanda (13. Dez 2009)

Ja, XStream ist eigentlich eine ziemlich simple Methode um Objekt in xml zu pressen und bietet halt auch einige Mechanismen, damit die xml dann auch menschenlesbar ist (Aliase, Converter...).

Du kannst halt bspw. deine Variablen in eine Map<String,Object> setzen:

```
Map<String, Object> map = new HashMap<String,Object>();
map.put("Variable1",var1);
map.put("Variable2",var2);

XStream x = new XStream();
System.out.println(x.toXML(map));
```


----------

