Entwickler-Ecke

IO, XML und Registry - Mehrere XML Einträge


Snowden - Di 18.02.14 11:50
Titel: Mehrere XML Einträge
Hallo,

mit meinem Codeausschnitt kann ich eine XML Datei erstellen und diese mit einer Person füllen (s.u.) ich möchte aber mehrere Personen eintragen können. Das ich eine ganze Liste in der XML Datei habe.


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:
void Button1Click(object sender, EventArgs e)
{

string puffer = textBox1.Text; 

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = " "

XmlWriter writer = XmlWriter.Create("Personen.xml", settings);
writer.WriteStartDocument();
writer.WriteStartElement("Personen");
writer.WriteComment("Die Datei wurde mit XmlWriter erzeugt");
writer.WriteStartElement("Person");
writer.WriteElementString("Zuname", puffer);
writer.WriteElementString("Vorname""Peter");
writer.WriteStartElement("Adresse");
writer.WriteAttributeString("Ort""Eifel");
writer.WriteAttributeString("Strasse""Am Wald 1");
writer.WriteValue("Germany");
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Close();

}


So sieht zurzeit meine XML Datei aus :


XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
<?xml version="1.0" encoding="utf-8" ?> 
- <Personen>
<!-- Die Datei wurde mit XmlWriter erzeugt
-->
 
- <Person>
<Zuname>miu</Zuname
<Vorname>Peter</Vorname
<Adresse Ort="Eifel" Strasse="Am Wald 1">Germany</Adresse
</Person>
</Personen>


Aber ich möchte noch weitere Personen einfügen, könnt ihr mir was vorschlagen ?

Viele Dank im Voraus

Moderiert von user profile iconChristian S.: Code- durch XML-Tags ersetzt


baumina - Di 18.02.14 11:54

Evtl. hilft dir dieses Tutorial weiter : http://www.dotnetperls.com/xmlwriter


Th69 - Di 18.02.14 12:37

Hallo und :welcome:

benutze anstatt dem händischen Schreiben einer XML-Datei besser die Serialisierung, s. als Einstieg Mit XmlSerializer Objekte als XML speichern und laden [http://www.entwickler-ecke.de/topic_Mit+XmlSerializer+Objekte+als+XML+speichern+und+laden_64947.html].
So kannst du ganz einfach im Programm eine List<Person> verwenden und diese dann per Serialisierung abspeichern und wieder laden.

P.S. Und bitte Crossposts entsprechend unserer Richtlinien [http://www.entwickler-ecke.de/sites.php?id=9] (3.10 Crosspostings) hier verlinken: myCSharp.de - Mehrere Einträge in eine XML-Datei schreiben [http://www.mycsharp.de/wbb2/thread.php?threadid=110943], danke.