Escribir XML en un archivo en C#

Muhammad Zeeshan 12 octubre 2023
  1. El formato XML
  2. Escribir XML en un archivo usando la clase XmlWriter en C#
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:

  1. 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;
    
  2. En la clase Main(), construiremos un objeto de XMLWriter y lo llamaremos xW. A continuación, proporcionaremos la ruta y el nombre del archivo XML como argumento para el objeto XMLWriter.

    XmlWriter xW = XmlWriter.Create("D:/myarticle/xmlfilebyZeeshan.xml");
    
  3. Comenzaremos creando el archivo XML con la ayuda de la función WriteStartDocument().

    xW.WriteStartDocument();
    
  4. Empezaremos a escribir el primer elemento usando la función WriteStartElement(). WriteAttributeString("CGPA", "3.6") y WriteString("Muhammad Zeeshan") se utilizarán para asignar varios valores de datos, y el elemento finalizará una vez que se llame a WriteEndElement().

    xW.WriteStartElement("First");
    xW.WriteAttributeString("CGPA", "3.6");
    xW.WriteString("Muhammad Zeeshan");
    xW.WriteEndElement();
    
  5. 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();
    
  6. Una vez que hayamos terminado de escribir todos los datos, finalizaremos el documento usando la función WriteEndDocument(), y luego usaremos la función Close() para cerrar el XMLWriter.

    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>
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

Artículo relacionado - Csharp XML

Artículo relacionado - Csharp File