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.

XML-Handler

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

XMLWriter.cs
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.

Es ist ein unerwarteter Fehler aufgetreten. Neu laden 🗙

Verbindung wird wiederhergestellt …

Verbindung fehlgeschlagen. Nächster Versuch in Sekunden.

Verbindung fehlgeschlagen. Bitte erneut versuchen oder die Seite neu laden.

Die Sitzung wurde vom Server pausiert.

Die Sitzung konnte nicht fortgesetzt werden. Bitte erneut versuchen oder die Seite neu laden.