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:
-
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;
-
In der Klasse
Main()
konstruieren wir ein Objekt vonXMLWriter
und nennen esxW
. Wir werden dann den Pfad und Namen der XML-Datei als Argument an das ObjektXMLWriter
übergeben.XmlWriter xW = XmlWriter.Create("D:/myarticle/xmlfilebyZeeshan.xml");
-
Wir beginnen mit der Erstellung der XML-Datei mit Hilfe der Funktion
WriteStartDocument()
.xW.WriteStartDocument();
-
Wir beginnen mit dem Schreiben des ersten Elements mit der Funktion
WriteStartElement()
.WriteAttributeString("CGPA", "3.6")
undWriteString("Muhammad Zeeshan")
werden verwendet, um verschiedene Datenwerte zuzuweisen, und das Element wird beendet, sobaldWriteEndElement()
aufgerufen wird.xW.WriteStartElement("First"); xW.WriteAttributeString("CGPA", "3.6"); xW.WriteString("Muhammad Zeeshan"); xW.WriteEndElement();
-
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();
-
Nachdem wir alle Daten geschrieben haben, beenden wir das Dokument mit der Funktion
WriteEndDocument()
und beenden mit der FunktionClose()
denXMLWriter
.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>
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