Pages

Monday, September 2, 2013

Create XML file from Datatable with some additonal nodes.

Create Datatable (u can use your datatable)

 private DataTable createDT()
    {
        // Initialise Datatable
        DataTable dt = new DataTable();
        // add columns with their Datatypes
        dt.Columns.Add("Id", Type.GetType("System.String"));                    // decimal type
        dt.Columns.Add("Country_ID", Type.GetType("System.String"));             // string type
        dt.Columns.Add("Name", Type.GetType("System.String"));
        dt.Columns.Add("Description", Type.GetType("System.String"));

        DataRow dr = dt.NewRow();
        dr["Id"] = "323";
        dr["Country_ID"] = "india";
        dr["Name"] = "isaa";
        dr["Description"] = "ewewed";
        dt.Rows.Add(dr);
        return dt;
    }



Create XML file from datatable "dt"

  private void WriteXML(DataTable dt)
    {
        using (XmlWriter writer = XmlWriter.Create(MapPath("employees.xml")))       // creates 'employee.xml' to write data from datatable
        {
            writer.WriteStartDocument();
            writer.WriteStartElement("root");                                        // create root node named 'root'

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                writer.WriteElementString("ID", dt.Rows[i]["Id"].ToString());                        // create childs of the root
                writer.WriteElementString("Country_ID", dt.Rows[i]["Country_ID"].ToString());

                writer.WriteStartElement("Gallery");                                     // create sub root..
                writer.WriteElementString("Name", dt.Rows[i]["Name"].ToString());                  // create sub child nodes..
                writer.WriteElementString("Description", dt.Rows[i]["Description"].ToString());
                writer.WriteEndElement();
            }
            writer.WriteEndElement();                                              // end root node
            writer.WriteEndDocument();
        }
    }



Output : (employees.xml)

<?xml version="1.0" encoding="utf-8"?>
<root>
  <ID>323</ID>
  <Country_ID>india</Country_ID>
  <Gallery>
    <Name>isaa</Name>
    <Description>ewewed</Description>
  </Gallery>
</root>

No comments:

Post a Comment