SoFunction
Updated on 2025-03-07

C# Recursively generates XML instance

using System;
using ;
using ;
using ;
using ;
using ;
using ;
using ;
//using ;
using ;

namespace WindowsApplication1
{
    public partial class frmReadXML : Form
    {
        public frmReadXML()
        {
            InitializeComponent();
        }
        public string connstr = ["connstr"].ToString();
      
        private void frmReadXML_Load(object sender, EventArgs e)
        {
            SqlConnection conn = new SqlConnection(connstr);
            ();
            SqlCommand comm = new SqlCommand();
            = "select * from Nationals";
            = conn;
            = ;
            SqlDataAdapter sda = new SqlDataAdapter();
            = comm;
            DataSet ds = new DataSet();
            (ds);

            XmlDocument doc = new XmlDocument();
            (("1.0","",""));
            XmlElement rootnode = ("root");
            (rootnode);

            CreateXMLtree(ds,doc,"",(XmlElement)null);

        }
        DataRow[] dr;
       
        public void CreateXMLtree(DataSet ds, XmlDocument doc, string parentCode,XmlElement parentNode)
        {

            if (parentCode == "")
            {
                 dr = [0].Select("parentCode=''");
            }
            else
            {
                dr = [0].Select("parentCode='" + (parentCode) + "'");
            }
            XmlElement tempNode;
            foreach (DataRow drv in dr)
            {
                if (parentCode == "")
                {
tempNode = ("c"+drv["Code"].ToString()); //Create a first-level node
("name", drv["name"].ToString()); //Create attributes
                    // = drv["name"].ToString();
(tempNode);//Add a first-level node
                    CreateXMLtree(ds,doc,drv["Code"].ToString(),tempNode);
                }
                else
                {
                    tempNode = ("c"+drv["Code"].ToString().Replace(".", ""));
                    ("name", drv["name"].ToString());
                    // = drv["name"].ToString();
                    (tempNode);
                    CreateXMLtree(ds, doc, drv["Code"].ToString(), tempNode);
                }
            }
            (+"/");
           
        }
    }
}