Unterricht und Kurs · Station 5 von 10
XML-Handler
Ein C#-Konsolenprogramm: Es macht aus einer CSV-Liste von Büchern eine XML-Datei und liest sie wieder ein.

Ziel
Nach Python den Schritt zu C# machen und mit Dateien, Klassen und einem festen Datenformat arbeiten.
Umsetzung
- Eine Schreiber-Klasse liest die CSV-Datei (Autor, Vorname, Titel, getrennt durch senkrechte Striche) und schreibt sie Element für Element als XML.
- Eine Leser-Klasse lädt die XML-Datei mit LINQ to XML und gibt jedes Buch auf der Konsole aus.
- Fehler beim Schreiben werden abgefangen und gemeldet, statt das Programm abstürzen zu lassen.
Code
Von CSV nach XML
public bool WriteXML()
{
try
{
string[] csvLines = File.ReadAllLines(InputCSVFile);
XmlWriter xmlDocument = XmlWriter.Create(OutputFile);
xmlDocument.WriteStartDocument();
xmlDocument.WriteStartElement("Werke");
for (int index = 1; index < csvLines.Length - 1; index++)
{
string[] fields = csvLines[index].Split('|');
if (fields.Length == 3)
{
xmlDocument.WriteStartElement("Buch");
xmlDocument.WriteStartElement("Name");
xmlDocument.WriteString(fields[0]);
xmlDocument.WriteEndElement();
xmlDocument.WriteStartElement("Vorname");
xmlDocument.WriteString(fields[1]);
xmlDocument.WriteEndElement();
xmlDocument.WriteStartElement("Titel");
xmlDocument.WriteString(fields[2]);
xmlDocument.WriteEndElement();
xmlDocument.WriteEndElement();
}
}
xmlDocument.WriteEndDocument();
xmlDocument.Close();
return true;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
return false;
}
}Jede Zeile der CSV-Datei wird in ein Buch-Element mit Name, Vorname und Titel umgewandelt.
Was ich gelernt habe
Wie C# mit Dateien und Texten umgeht. Mit der richtigen Bibliothek macht ein Format wie XML kaum Handarbeit.