Entwickler-Ecke
IO, XML und Registry - In Datei hinzufügen und nicht neu schreiben.
Spiderschwein - Do 02.08.07 18:10
Titel: In Datei hinzufügen und nicht neu schreiben.
Hallo liebe Leute.
Ich möchte gerade folgendes machen:
In einem Dialog Daten eingeben und diese in einer XML-Datei speichern. Folgenden Code habe ich:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| void Button1Click(object sender, EventArgs e) { XmlTextWriter myXmlTextWriter = new XmlTextWriter("ldb.xml", System.Text.Encoding.UTF8); myXmlTextWriter.Formatting = Formatting.Indented; myXmlTextWriter.WriteStartDocument(false); myXmlTextWriter.WriteComment("Das ist nur ein Test"); myXmlTextWriter.WriteStartElement("ldbe"); myXmlTextWriter.WriteElementString("vorname",textBox2.Text); myXmlTextWriter.WriteElementString("nachname", textBox3.Text); myXmlTextWriter.WriteElementString("email", textBox1.Text); myXmlTextWriter.WriteElementString("gebu", textBox4.Text); myXmlTextWriter.WriteElementString("jahrgang", textBox5.Text); if(checkBox2.Checked) { myXmlTextWriter.WriteElementString("hide_gebu", "1"); } else { myXmlTextWriter.WriteElementString("hide_gebu", "0"); } if(checkBox1.Checked) { myXmlTextWriter.WriteElementString("hide_jahrgang", "1"); } else { myXmlTextWriter.WriteElementString("hide_jahrgang", "0"); } myXmlTextWriter.WriteEndElement(); myXmlTextWriter.Flush(); myXmlTextWriter.Close(); } |
Doch leider werden weitere Daten nicht hinzugefügt, sondern die Datei wird überschrieben.
Die XML sieht wie folgt aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| <?xml version="1.0" encoding="utf-8" standalone="no"?> <!--Das ist nur ein Test--> <ldbe> <vorname>Hans</vorname> <nachname>Muster</nachname> <email>mep@dasda.de2</email> <gebu>20.09.1985</gebu> <jahrgang>1985</jahrgang> <hide_gebu>1</hide_gebu> <hide_jahrgang>1</hide_jahrgang> </ldbe> |
Würde mich über Hilfe freuen.
Kha - Do 02.08.07 18:34
Der XmlWriter ist zwar schön schnell, aber bei deiner Aufgabenstellung müsstest du dann wohl eine Kombination aus XmlReader und -Writer einsetzen - da würde ich lieber gleich auf XmlDocument setzen. Du lädst die Datei in eine neue Instanz, erstellst einen neuen XmlNode und hängst ihn per AppendChild an den Root-Knoten oder woauchimmer er landen soll.
Spiderschwein - Do 02.08.07 19:31
Alles klar. Ich muss dazu sagen, dass ich voll der Anfänger bin (seit Heute ;)) und wollte mal fragen, wo es denn für XmlDocument ne Doku gibt.
Kha - Do 02.08.07 21:03
Tutorials gibts es zu Hauf bei Google zu finden, aber in punkto Doku gibt es nur eine wahre Quelle:
.NET FRAMEWORK SDK (sollte allerdings schon bei jeder VS-Version dabei sein - einfach mal über XmlDocument F1 drücken). Unter XmlNode.AppendChild findest du Beispielsoßen, die dein Problem fast schon perfekt nachbilden - geradezu unheimlich *g* .
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!