Crear archivo XML en C#

Te mostramos un ejemplo de como crear un archivo XML en C# usando XmlDocument de System.Xml. Desde luego, tu puedes crear un XML concatenando cadenas y respetando la estructura de un XML. Sin embargo, a veces es necesario hacerlo de forma dinámica y con la seguridad de que la estructura se puede modificar sin incurrir en errores dejando las validaciones a librerías especializadas.  El código que puedes copiar y probar es el siguiente:

» Ver más ejemplos

using System;
using System.Xml;

//decodigo.com

namespace CrearXml
{
    class Program
    {
        static void Main(string[] args)
        {
            XmlDocument doc = new XmlDocument();

            XmlDeclaration xmlDeclaration = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
            XmlElement root = doc.DocumentElement;
            doc.InsertBefore(xmlDeclaration, root);

            XmlElement element1 = doc.CreateElement(string.Empty, "cuerpo", string.Empty);
            doc.AppendChild(element1);

            XmlElement element2 = doc.CreateElement(string.Empty, "nivel1", string.Empty);
            element1.AppendChild(element2);

            XmlElement element3 = doc.CreateElement(string.Empty, "nivel2", string.Empty);
            XmlText text1 = doc.CreateTextNode("texto");
            element3.AppendChild(text1);
            element2.AppendChild(element3);

            XmlElement element4 = doc.CreateElement(string.Empty, "nivel3", string.Empty);
            XmlText text2 = doc.CreateTextNode("más texto");
            element4.AppendChild(text2);
            element2.AppendChild(element4);

            doc.Save("C://ruta//xml_ejemplo.xml");
        }
    }
}


La declararción del XML no es obligatoria pero se recomienda hacerla siempre.  Después de crear la declararción, creamos un XMLElement con el cuerpo principal de nuestro archivo XML con las siguientes dos líneas.

            XmlDeclaration xmlDeclaration = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
            XmlElement root = doc.DocumentElement;
            doc.InsertBefore(xmlDeclaration, root);

La función CreateElement nos premite crear elementos nuevos que agregaremos al cuerpo principal del XML con la función AppendChild, procedimiento que puedes realizar sobre el nodo raiz o sobre elementos creados en niveles diferentes.

Algunos nodos de texto se pueden agregar usando CreateTextNode que genera un objeto de tipo XmlText, que al final agregameos con AppendChild sobre el nodo que deseemos.

            XmlText text2 = doc.CreateTextNode("más texto");
            element4.AppendChild(text2);

El resultado al compilar y ejecutar el código es el siguiente:

Crear archivo XML en C#

Hemos creado un pequeño archivo XML con al menos tres niveles, desde luego deberás hacer los ajustes necesarios para crear un XML con la estructura que tu necesitas. Crear archivo XML en C# requiere conocer aspectos básicos de la estructura de un XML.

Ver la documentación: https://docs.microsoft.com/es-es/dotnet/api/system.xml.xmldocument?view=net-5.0

3 comentarios en «Crear archivo XML en C#»

  1. Tenia dias buscando una rutina para generar archivos en C#. Este codigo viene caido del cielo o de una nube. Voy a implementarlo ya. Vos sos un genio en la programacion.

    Responder

Deja un comentario

thirty three + = forty three