XML-Datei ein- und auslesen
-
Hey,
könnte mir jemand erklären, wie man mit XMLReader und XMLWriter liest bzw. schreibt?
Ich möchte gerne eine Datei mit folgendem Aufbau:
<personen>
<person>
<name>Person 1</name>
</person><person>
<name>Person 2</name>
</person>
</personen>Ich hab es mit reader.NodeType, reader.Value, etc. probiert, aber mir scheint das Prinzip nicht einzuleuchten...
Ich möchte eben einfach alle Personen auslesen und später wieder zurückschreiben.
-
Gerade keine Zeit dir das ausführlich zu beantworten, aber die MSDN liefert eigentlich eine ganz gute Dokumentation zu XmlReader und XmlWriter.
Reading XML with the XmlReader
Writing XML with the XmlWriterEinfach mal ein wenig durchklicken, hat zu allen Themen auch Beispiele.
Grüssli
-
Wenns auch Linq to XML sein darf.
http://msdn.microsoft.com/en-us/library/system.xml.linq.aspx
http://blog.linqexchange.com/index.php/how-to-write-an-xml-file-using-linq-to-xml/
-
Einfacher wäre jedoch die Standard XML-Serialisierung des .NET-Frameworks:
Personen personen; // Lesen: using (StreamReader reader = new StreamReader(sFilename)) { XmlSerializer xml = new XmlSerializer(typeof(Personen)); personen = (Personen)xml.Deserialize(reader); } // Schreiben: using (StreamWriter writer = new StreamWriter(sFilename)) { XmlSerializer xml = new XmlSerializer(typeof(Personen)); xml.Serialize(writer, personen); }
Dazu mußt du dann nur eine Klasse Personen anlegen (welche am besten selber von List<Person> abgeleitet ist), und in der Klasse Person dann die entsprechenden Eigenschaften (Properties) definieren.
Details kannst du dann mit den XmlAttributen festlegen: Attribute zur Steuerung der XML-Serialisierung