C# Crear archivo XML

Te mostramos un ejemplo de como crear un archivo XML en C# usando XmlDocument.  El código es el siguiente:

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.

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 es el siguiente:

Hemos creado un pequeño archivo XML con al menos tres niveles.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *