C# Lesen und Parsen einer XML-Datei
In C# wird der Namensraum System.Xml
verwendet, um mit den XML
-Dateien umzugehen. Er verfügt über verschiedene Klassen und Methoden, um XML
-Dateien zu verarbeiten. Wir können eine XML
-Datei lesen, parsen und schreiben, indem wir diesen Namensraum benutzen.
In diesem Artikel werden wir verschiedene Methoden besprechen, die zum Lesen und Parsen einer XML-Datei verwendet werden.
C# Programm zum Lesen und Parsen einer XML
-Datei mit der Klasse XmlReader
Die Klasse XmlReader
in C# bietet eine effiziente Möglichkeit, auf XML
-Daten zuzugreifen. Die Methode XmlReader.Read()
liest den ersten Knoten der XML
-Datei und liest dann die gesamte Datei unter Verwendung einer while
-Schleife.
Die korrekte Syntax zur Verwendung dieser Methode lautet wie folgt:
XmlReader VariableName = XmlReader.Create(@"filepath");
while (reader.Read()) {
// Action to perform repeatidly
}
Die XML
-Datei, die wir in unserem Programm gelesen und geparst haben, lautet wie folgt. Kopieren Sie diesen Code und fügen Sie ihn in eine neue Textdatei ein und speichern Sie sie als .xml
, um diese Datei zur Ausführung des unten angegebenen Programms zu verwenden.
<?xml version="1.0" encoding="utf-8"?>
<Students>
<Student>
</Student>
<Student>
<Name>Olivia</Name>
<Grade>A</Grade>
</Student>
<Student>
<Name>Laura</Name>
<Grade>A+</Grade>
</Student>
<Student>
<Name>Ben</Name>
<Grade>A-</Grade>
</Student>
<Student>
<Name>Henry</Name>
<Grade>B</Grade>
</Student>
<Student>
<Name>Monica</Name>
<Grade>B</Grade>
</Student>
</Students>
Beispiel-Code:
using System;
using System.Xml;
namespace XMLReadAndParse {
class XMLReadandParse {
static void Main(string[] args) {
// Start with XmlReader object
// here, we try to setup Stream between the XML file nad xmlReader
using (XmlReader reader = XmlReader.Create(@"d:\Example.xml")) {
while (reader.Read()) {
if (reader.IsStartElement()) {
// return only when you have START tag
switch (reader.Name.ToString()) {
case "Name":
Console.WriteLine("The Name of the Student is " + reader.ReadString());
break;
case "Grade":
Console.WriteLine("The Grade of the Student is " + reader.ReadString());
break;
}
}
Console.WriteLine("");
}
}
Console.ReadKey();
}
}
}
Hier haben wir ein Objekt von XmlReader
erzeugt und dann mit der Methode Create()
einen Lesestream der gegebenen XML
Datei erzeugt.
Dann haben wir die Methode XmlReader.Read()
benutzt, um die XML
Datei zu lesen. Diese Methode gibt einen bool
-Wert zurück, der angibt, ob der von uns erzeugte Stream die XML
-Anweisungen enthält oder nicht.
Danach haben wir mit der XmlReader.IsStartElement()
Methode überprüft, ob es irgendein Startelement gibt. Da wir zwei Elementfelder in unseren XML-Daten haben, haben wir die Switch-Anweisung verwendet, um die Daten aus beiden Feldern mit der ReadString()
-Methode zu lesen.
Ausgabe:
The Name of the Student is Olivia
The Grade of the Student is A
The Name of the Student is Laura
The Grade of the Student is A+
The Name of the Student is Ben
The Grade of the Student is A-
The Name of the Student is Henry
The Grade of the Student is B
The Name of the Student is Monica
The Grade of the Student is B