Escribir XML en un archivo en C#
Este tutorial nos enseñará cómo utilizar el lenguaje de programación C# para poner XML en un archivo. Primero, mire el formato de un archivo XML y vea cómo está organizado.
El formato XML
XML, que significa Lenguaje de marcado extensible, es un lenguaje de marcado similar a HTML pero se distingue porque utiliza etiquetas para definir objetos. El modelo de objeto de documento XML (DOM), una interfaz de programación de aplicaciones para documentos HTML y XML, es la base del formato de archivo XML.
El modelo de objeto de documento (DOM) XML define un mecanismo estándar para acceder y modificar los componentes del documento XML. Crea una representación de estructura de árbol de un documento XML, que se puede utilizar para acceder a todos los componentes del documento a través del árbol DOM.
El árbol XML permite modificar o eliminar elementos producidos anteriormente y crear nuevos componentes. Un nodo es un nombre para cada elemento que compone un documento XML.
Escribir XML en un archivo usando la clase XmlWriter
en C#
La clase XmlWriter
se encarga de agregar texto a los archivos XML y tiene las capacidades necesarias. Es una clase base abstracta de la que derivan su funcionalidad las clases XmlTextWriter
y XmlNodeWriter
.
Tiene una variedad de métodos y atributos que pueden usarse para crear documentos XML. Esta clase tiene muchos métodos Writer
, uno para cada tipo de elemento que se puede encontrar en un documento XML.
Algunos de ellos incluyen WriteNode
, WriteString
, WriteAttributes
, WriteStartElement
y WriteEndElement
. Otros ejemplos son WriteAttributes
y WriteStartElement
.
Algunos de estos procedimientos se usan en conjunto para formar un par de salida y llegada. Por ejemplo, para escribir un elemento, primero debe usar el método WriteStartElement
, después de lo cual debe escribir una cadena y luego llamar al método WriteEndElement
.
Para una mejor comprensión, echemos un vistazo a un ejemplo de cómo escribir XML utilizando la clase XmlWriter
:
-
Para comenzar, debemos importar las siguientes bibliotecas:
using System; using System.Text; using System.Xml; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks;
-
En la clase
Main()
, construiremos un objeto deXMLWriter
y lo llamaremosxW
. A continuación, proporcionaremos la ruta y el nombre del archivo XML como argumento para el objetoXMLWriter
.XmlWriter xW = XmlWriter.Create("D:/myarticle/xmlfilebyZeeshan.xml");
-
Comenzaremos creando el archivo XML con la ayuda de la función
WriteStartDocument()
.xW.WriteStartDocument();
-
Empezaremos a escribir el primer elemento usando la función
WriteStartElement()
.WriteAttributeString("CGPA", "3.6")
yWriteString("Muhammad Zeeshan")
se utilizarán para asignar varios valores de datos, y el elemento finalizará una vez que se llame aWriteEndElement()
.xW.WriteStartElement("First"); xW.WriteAttributeString("CGPA", "3.6"); xW.WriteString("Muhammad Zeeshan"); xW.WriteEndElement();
-
Luego, para terminar el archivo, usaremos las siguientes funciones para escribir el segundo y tercer elemento.
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();
-
Una vez que hayamos terminado de escribir todos los datos, finalizaremos el documento usando la función
WriteEndDocument()
, y luego usaremos la funciónClose()
para cerrar elXMLWriter
.xW.WriteEndDocument(); xW.Close();
Código fuente completo
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();
}
}
}
Producción :
<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