Hallo,
ich bin ganz neu hier und etwas erschlagen von den Ausmassen dieses Forums. Leider habe ich keine Suchfunktion so auf die Schnelle gefunden. Hoffe, das Thema gibt es nicht schon...
Aaaaalso:
Ich bin gerade dabei ein Adressbuch auf XML Basis mit Eclipse zu programmieren. Ich kann bereits ein neues XML Adressbuch anlegen und auch neue Kontakte hinzufuegen. Was mir noch fehlt ist die Bearbeitung eines bestehenden Kontaktes. Da komme ich in meinen Ideen leider nicht weiter und hoffe auf einen Tipp, wie ich das Umsetzen kann.
Ich benutze dom4j und zum Schreiben von XML Files die Klasse XMLWriter. Aber diese Klasse schreibt mir ja gleich ein komplett neues Dokument, oder?
Ich weiss nicht genau, wie ins Detail ich jetzt gehen muss. Ich versuch mal einen groben Ueberblick zu verschaffen:
Das XML Dokument ist verkuerzt wie folgt aufgebaut:
<adressbuch>
<vcard id= "0">
<person>
...
</person>
</vcard>
<vcard id= "1">
...
</vcard>
</adressbuch>
Um den zu bearbeitenden Kontakt wollte ich mit XPath identifizieren. Da weiss ich zwar auch nicht genau wie, aber das bekomm ich sicher noch hin.
Der Kontakt befindet sich zum Zeitpunkt des Bearbeitens in einem geoeffneten (also geparsten) XML File.
Meine Frage ist nun konkret: Kann ich den folgenden Code, den ich fuer das Anlegen eines neuen Kontaktes benutze, auch fuer das Ueberspeichern des bearbeiteten "alten" Kontaktes verwenden? Oder habt ihr eine andere Idee, wie ich das machen kann?
Code zum Speichern:
public void writeNewData() throws IOException, DocumentException{
XMLWriter writer = new XMLWriter(new FileWriter (file), new OutputFormat(null, false, "ISO-8859-1"));
writer.write(document);
writer.close();
}
zur Info: document ist eine Instanzvariable. Diese enthaelt die XML Baumstruktur und ggf. die neu geschriebenen Inhalte. file ist ebenfalls eine Instanzvariable und enthaelt den Pfad der XML- Datei.
So... Ich hoffe, ich konnte mein Problem einigermassen deutlich machen und hoffe auf hilfreiche Tipps.
Vielen Dank schon mal und schoene Gruesse
Rebecca
ich bin ganz neu hier und etwas erschlagen von den Ausmassen dieses Forums. Leider habe ich keine Suchfunktion so auf die Schnelle gefunden. Hoffe, das Thema gibt es nicht schon...
Aaaaalso:
Ich bin gerade dabei ein Adressbuch auf XML Basis mit Eclipse zu programmieren. Ich kann bereits ein neues XML Adressbuch anlegen und auch neue Kontakte hinzufuegen. Was mir noch fehlt ist die Bearbeitung eines bestehenden Kontaktes. Da komme ich in meinen Ideen leider nicht weiter und hoffe auf einen Tipp, wie ich das Umsetzen kann.
Ich benutze dom4j und zum Schreiben von XML Files die Klasse XMLWriter. Aber diese Klasse schreibt mir ja gleich ein komplett neues Dokument, oder?
Ich weiss nicht genau, wie ins Detail ich jetzt gehen muss. Ich versuch mal einen groben Ueberblick zu verschaffen:
Das XML Dokument ist verkuerzt wie folgt aufgebaut:
<adressbuch>
<vcard id= "0">
<person>
...
</person>
</vcard>
<vcard id= "1">
...
</vcard>
</adressbuch>
Um den zu bearbeitenden Kontakt wollte ich mit XPath identifizieren. Da weiss ich zwar auch nicht genau wie, aber das bekomm ich sicher noch hin.
Der Kontakt befindet sich zum Zeitpunkt des Bearbeitens in einem geoeffneten (also geparsten) XML File.
Meine Frage ist nun konkret: Kann ich den folgenden Code, den ich fuer das Anlegen eines neuen Kontaktes benutze, auch fuer das Ueberspeichern des bearbeiteten "alten" Kontaktes verwenden? Oder habt ihr eine andere Idee, wie ich das machen kann?
Code zum Speichern:
public void writeNewData() throws IOException, DocumentException{
XMLWriter writer = new XMLWriter(new FileWriter (file), new OutputFormat(null, false, "ISO-8859-1"));
writer.write(document);
writer.close();
}
zur Info: document ist eine Instanzvariable. Diese enthaelt die XML Baumstruktur und ggf. die neu geschriebenen Inhalte. file ist ebenfalls eine Instanzvariable und enthaelt den Pfad der XML- Datei.
So... Ich hoffe, ich konnte mein Problem einigermassen deutlich machen und hoffe auf hilfreiche Tipps.
Vielen Dank schon mal und schoene Gruesse
Rebecca