Schreiben Sie XML in eine Datei in C#

Muhammad Zeeshan 12 Oktober 2023
  1. Das XML-Format
  2. Schreiben Sie XML in eine Datei mit der Klasse XmlWriter in C#
Schreiben Sie XML in eine Datei in C#

Dieses Tutorial zeigt uns, wie man die Programmiersprache C# verwendet, um XML in eine Datei zu schreiben. Sehen Sie sich zuerst das Format einer XML-Datei an und sehen Sie, wie sie organisiert ist.

Das XML-Format

XML, das für Extensible Markup Language steht, ist eine HTML-ähnliche Auszeichnungssprache, die sich jedoch dadurch unterscheidet, dass sie Tags verwendet, um Objekte zu definieren. Das XML Document Object Model (DOM), eine Anwendungsprogrammierschnittstelle für HTML- und XML-Dokumente, ist die Grundlage für das XML-Dateiformat.

Ein Standardmechanismus zum Zugreifen auf und Ändern der XML-Dokumentkomponenten wird durch das XML-Dokumentobjektmodell (DOM) definiert. Es erstellt eine Baumstrukturdarstellung eines XML-Dokuments, die verwendet werden kann, um auf alle Komponenten des Dokuments über den DOM-Baum zuzugreifen.

Der XML-Baum ermöglicht das Ändern oder Löschen zuvor erstellter Elemente und das Erstellen neuer Komponenten. Ein Knoten ist ein Name für jedes Element, aus dem ein XML-Dokument besteht.

Schreiben Sie XML in eine Datei mit der Klasse XmlWriter in C#

Die Klasse XmlWriter ist für das Hinzufügen von Text zu XML-Dateien zuständig und verfügt über die erforderlichen Fähigkeiten. Es ist eine abstrakte Basisklasse, von der die Klassen XmlTextWriter und XmlNodeWriter ihre Funktionalität ableiten.

Es verfügt über eine Vielzahl von Methoden und Attributen, die zum Erstellen von XML-Dokumenten verwendet werden können. Diese Klasse hat viele Writer-Methoden, eine für jede Art von Element, das in einem XML-Dokument gefunden werden kann.

Einige davon sind WriteNode, WriteString, WriteAttributes, WriteStartElement und WriteEndElement. Andere Beispiele sind WriteAttributes und WriteStartElement.

Einige dieser Verfahren werden in Verbindung miteinander verwendet, um ein Start- und Zielpaar zu bilden. Um beispielsweise ein Element zu schreiben, müssen Sie zuerst die Methode WriteStartElement verwenden, danach müssen Sie einen String schreiben und dann die Methode WriteEndElement aufrufen.

Schauen wir uns zum besseren Verständnis ein Beispiel für das Schreiben von XML mit der Klasse XmlWriter an:

  1. Zunächst müssen wir die folgenden Bibliotheken importieren:

    using System;
    using System.Text;
    using System.Xml;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    
  2. In der Klasse Main() konstruieren wir ein Objekt von XMLWriter und nennen es xW. Wir werden dann den Pfad und Namen der XML-Datei als Argument an das Objekt XMLWriter übergeben.

    XmlWriter xW = XmlWriter.Create("D:/myarticle/xmlfilebyZeeshan.xml");
    
  3. Wir beginnen mit der Erstellung der XML-Datei mit Hilfe der Funktion WriteStartDocument().

    xW.WriteStartDocument();
    
  4. Wir beginnen mit dem Schreiben des ersten Elements mit der Funktion WriteStartElement(). WriteAttributeString("CGPA", "3.6") und WriteString("Muhammad Zeeshan") werden verwendet, um verschiedene Datenwerte zuzuweisen, und das Element wird beendet, sobald WriteEndElement() aufgerufen wird.

    xW.WriteStartElement("First");
    xW.WriteAttributeString("CGPA", "3.6");
    xW.WriteString("Muhammad Zeeshan");
    xW.WriteEndElement();
    
  5. Um die Datei fertigzustellen, verwenden wir die folgenden Funktionen, um das zweite und dritte Element zu schreiben.

    xW.WriteStartElement("Second");
    xW.WriteAttributeString("CGPA", "3.9");
    xW.WriteString("Haseeb ur Rehman");
    xW.WriteEndElement();
    
    xW.WriteStartElement("Third");
    xW.WriteAttributeString("CGPA", "3.8");
    xW.WriteString("Bawa Younus");
    xW.WriteEndElement();
    
  6. Nachdem wir alle Daten geschrieben haben, beenden wir das Dokument mit der Funktion WriteEndDocument() und beenden mit der Funktion Close() den XMLWriter.

    xW.WriteEndDocument();
    xW.Close();
    

Vollständiger Quellcode

using System;
using System.Text;
using System.Xml;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace writexmlbyZeeshan {
  class Program {
    static void Main(string[] args) {
      XmlWriter xW = XmlWriter.Create("D:/myarticle/xmlfilebyZeeshan.xml");

      xW.WriteStartDocument();
      xW.WriteStartElement("Students");

      xW.WriteStartElement("First");
      xW.WriteAttributeString("CGPA", "3.6");
      xW.WriteString("Muhammad Zeeshan");
      xW.WriteEndElement();

      xW.WriteStartElement("Second");
      xW.WriteAttributeString("CGPA", "3.9");
      xW.WriteString("Haseeb ur Rehman");
      xW.WriteEndElement();

      xW.WriteStartElement("Third");
      xW.WriteAttributeString("CGPA", "3.8");
      xW.WriteString("Bawa Younus");
      xW.WriteEndElement();

      xW.WriteEndDocument();
      xW.Close();
    }
  }
}

Ausgang:

<Students>
<First CGPA="3.6">Muhammad Zeeshan</First>
<Second CGPA="3.9">Haseeb ur Rehman</Second>
<Third CGPA="3.8">Bawa Younus</Third>
</Students>
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

Verwandter Artikel - Csharp XML

Verwandter Artikel - Csharp File