Autor Beitrag
Spiderschwein
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 02.08.07 18:10 
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:
ausblenden 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)
    {
       // speichern eines neuen menschen
        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);
          
          // Geburstag anzeigen
          if(checkBox2.Checked) {
             myXmlTextWriter.WriteElementString("hide_gebu""1");            
          } else {
             myXmlTextWriter.WriteElementString("hide_gebu""0");            
          }          
          // Jahrgang anzeigen?
          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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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: Suche im MSDN .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* .