# XML als Properties



## JensMander (7. Nov 2012)

Hallo FOrum,
ich habe eine XML die ich als Properties einlese und bearbeite, wenn ich nun die Änderungen speichere, dann werden meine Kommentare gelöscht, weil eben eigentlich eine neue Datei erzeugt wird. Ich hätte gerne eine ganz einfach Funktionalität:
-Einlesen
-Bearbeiten
-Änderung speichern

Muss ich mir da eine eigene Methode ausdenken oder kann das irgendeine Methode, ich durchforste gerade jdome/jaxp und schaue mir auch StAX an, habe aber das Gefühl das gerade beim Abspeichern jedesmal eine neue Datei erzeugt wird.

vielen Dank für eure Tipps
Jens


----------



## Alenka87 (7. Nov 2012)

poste bitte ein Codeausschnitt.

Versteh nicht, warum immer eine neue Datei erzeugt wird. 
Sollte eigentlich so aussehen:
1. Datei einlesen
2. Datei bearbeiten
3. Datei ausgeben


generell: JDom ist schon mal gut. habe selbst mal viel damit gemacht und fand es angenehmer als Dom.


zum Stichwort Methoden:

Wenn du viel mit XML&Java arbeitest, kannst du gleich eine Hilfsklasse anlegen, die zum Beispiel folgendermaßen aussieht:


```
Klasse XmlLeser{

   öffneDokument(String dokumentName);

   speichereDokument(String DokumentName);

   findeXmlKnoten(String knotenName);

   bearbeiteWert(String Knotenname, String wert);

   bearbeiteAttribut(String Knotenname, String attributName, StringattributWert);

usw

}
```


----------



## JensMander (8. Nov 2012)

Also im ersten Schritt hatte ich es wie folgt gemacht, ich lese die Properties ganz normal ein und lasse diese über JTextFields anzeigen und bearbeiten. Zusätzlich habe ich einen Button mit dem ich die Änderungen speichere:

Wenn ich das aber nun so mache, gehen mir die Kommentare im XML-File flöten.


```
JButton btnNewButton_1 = new JButton("Änderung speichern");
		btnNewButton_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				Properties properties_save = new Properties();
				properties_save.setProperty("OptionA",textField.getText().replace(",",".") );
				properties_save.setProperty("OptionB",textField_1.getText().replace(",",".") );
				properties_save.setProperty("OptionC",textField_2.getText() );
				properties_save.setProperty("OptionD",textField_3.getText() );
				properties_save.setProperty("OptionE",textField_4.getText() );
				try {
					properties.saveProperties(properties_save);
				} catch (FileNotFoundException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
			}
```

Heute werde ich das ganze einfach mal mit JDOM versuchen.
mfg
Jenner


----------

