Speichern über JDOM

Hans-Schmdt-Peter

Grünschnabel
Hi,

und zwar geht es darum, dass ich mir eine Klasse(ExportJDOM) geschrieben habe mit der ich eine XML-Datei erstelle und mit Werten befülle, die ich aus TextFeldern der Graphischen Oberfläche beziehe.
Dies klappt auch alles nur ist es so, dass er die alten Daten immer wieder überschreibt wenn neue Daten eingegeben und gespeichert werden sollen.
Ich könnte natürlich für jedes Datenpaket eine neue XML-Datei erstellen aber das wäre nciht so schön, da ich mir die Wert im späteren verlauf noch in eine JTable anzeigen lassen will und ich nicht 500-XML-Dateien im Ordner liegen haben will.

So meine frage ist es wie kann ich verhindern, dass er die alten Daten überschreibt?


PHP:
package Speichern;

import java.io.FileOutputStream;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;

import Gui.MainWindow;

public class ExportJDOM {

	private MainWindow mainWindow = null;

	public ExportJDOM(MainWindow xml) {

		mainWindow = xml;
		erzeugen();

	}

	public void erzeugen() {

		Element root = new Element("Blub"); // Wurzelelement erzeugen
		Document doc = new Document(root); // neues Dok. benötigt nur
		// Wurzel

		root.addContent(new Element(mainWindow.getTNachName().getText() + "_"
				+ mainWindow.getTVorName().getText()).addContent(
				new Element("Vorname").addContent(mainWindow.getTVorName()
						.getText())).addContent(
				new Element("Nachname").addContent(mainWindow.getTNachName()
						.getText())).addContent(
				new Element("Telefon").addContent(mainWindow.getTTel()
						.getText().toString())).addContent(
				new Element("Raum").addContent(mainWindow.getTRaum().getText()
						.toString())).addContent(
				new Element("Kostenstelle").addContent(mainWindow
						.getTKostenstelle().getText().toString())).addContent(
				new Element("Gehalt_pro_Stunde").addContent(mainWindow
						.getTGehaltProStunde().getText().toString()))
				.addContent(
						new Element("Personalnummer").addContent(mainWindow
								.getTPersonalnummer().getText().toString())));

		try {

			XMLOutputter outputter = new XMLOutputter();
			FileOutputStream output = new FileOutputStream("file.xml");
			outputter.output(doc, output);
			output.flush();
			output.close();

		} catch (Exception e) {
			// TODO: handle exception
		}

	}
}
 
Hallo,

na wenn du die alten Daten behalten willst, solltest du sie auch verwenden.

Mal ein Beispiel.

Du hast eine TXT-Datei in der Text steht. Wenn du jetzt Notepad öffnest einen Text schreibst und speicherst diese im gleichen Verzeichnis mit dem gleichen Namen, dann wird die alte doch überschrieben. Wenn du Text aber hinten dran hängen möchtest, musst du die alte Datei öffnen und den Text hinten dran hängen und dann speichern.

Genau so musst du das hier auch machen. Du musst die alten Daten nochmal einlesen, die neuen Daten hinten dran hängen und die Datei erneut schreiben.

MFG

Sascha
 
Super danke hat geklappt

Ich hab aber noch ein paar fragen offen:

Und zwar ist meine erste wie kann ich es jetzt einrichten, dass wenn ich denn selber vor und nachnamen eingegeben hab ich die Elemente verändern kann un er mir diese nicht an die XML-Datei dranklebt?

Ich hätte da noch eine Frage und zwar ist es ja auch möglich die Element in einem Tree oder Table auszugeben.
Der Tree sollte dann so aussehen:

+Firmenname
+Nachname+Vorname
+Nachname+Vorname
+Nachname+Vorname
...


Wenn ich jetzt ein Element im Baum markiert habe soll er mir die entahltenen Elemente in denn Textfeldern anzeigen so das man sie verändern kann, was mich wieder zu meiner ersten frage führt.
 
Zurück