C# Leer y analizar un archivo XML
En C#, el espacio de nombres System.Xml
se usa para tratar los archivos XML
. Tiene diferentes clases y métodos para procesar los archivos XML
. Podemos leer, analizar y escribir un archivo XML
usando este espacio de nombres.
En este artículo, vamos a discutir los diferentes métodos que se usan para leer y analizar un archivo XML
.
Programa C# para leer y analizar un archivo XML
usando la clase XmlReader
La clase XmlReader en C# proporciona una manera eficiente de acceder a los datos XML
. El método XmlReader.Read()
lee el primer nodo del archivo XML
y luego lee todo el archivo usando un bucle while
.
La sintaxis correcta para usar este método es la siguiente:
XmlReader VariableName = XmlReader.Create(@"filepath");
while (reader.Read()) {
// Action to perform repeatidly
}
El archivo XML
que hemos leído y analizado en nuestro programa es el siguiente. Copia y pega este código en un nuevo archivo de texto y guárdalo como .xml
para usar este archivo para ejecutar el programa que se indica a continuación.
<?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>
Código de ejemplo:
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();
}
}
}
Aquí hemos creado un objeto de XmlReader
y luego hemos creado un flujo lector del archivo XML
dado usando el método Create()
.
Luego, hemos usado el método XmlReader.Read()
para leer el archivo XML
. Este método devuelve un valor bool
que indica si nuestro flujo creado contiene las declaraciones XML
o no.
Después de eso, hemos comprobado si hay algún elemento de inicio usando el método XmlReader.IsStartElement()
. Como tenemos dos campos de elementos en nuestros datos XML
, hemos usado la sentencia switch
para leer los datos de ambos campos usando el método ReadString()
.
Producción :
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