Pages

Monday, September 2, 2013

Create XML using XML Writer


 Create Datatable with Data :

  private DataTable createDT()
    {
        // Initialise Datatable
        DataTable dt = new DataTable("root");
        // add columns with their Datatypes
        dt.Columns.Add("title", Type.GetType("System.String"));                     
        dt.Columns.Add("metakeyword", Type.GetType("System.String"));            
        dt.Columns.Add("metadescription", Type.GetType("System.String"));
        dt.Columns.Add("heading", Type.GetType("System.String"));
        dt.Columns.Add("albumurl", Type.GetType("System.String"));
        dt.Columns.Add("noofimg", Type.GetType("System.String"));
        dt.Columns.Add("albumname", Type.GetType("System.String"));
        dt.Columns.Add("date", Type.GetType("System.String"));
        dt.Columns.Add("imagename", Type.GetType("System.String"));
        dt.Columns.Add("imageurl", Type.GetType("System.String"));
        dt.Columns.Add("position", Type.GetType("System.String"));
        dt.Columns.Add("imagealbumname", Type.GetType("System.String"));

        DataRow dr = dt.NewRow();
        dr["title"] = "fafasf";
        dr["metakeyword"] = "dfvvbb";
        dr["metadescription"] = "qwert";
        dr["heading"] = "vgttt";
        dr["albumurl"] = "1313";
        dr["noofimg"] = "asdad";
        dr["albumname"] = "opopi";
        dr["date"] = "t56647";
        dr["imagename"] = "gfgfg";
        dr["imageurl"] = "jhkhjk";
        dr["position"] = "kjhjk";
        dr["imagealbumname"] = "etert";

        dt.Rows.Add(dr);
        return dt;
    }


Create XML from Datatable as you want :

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

            for (; i < 8; i++)
            {
                writer.WriteElementString(dt.Columns[i].ColumnName, dt.Rows[0][i].ToString());
            }

            writer.WriteStartElement("Gallery");

            for (; i < dt.Columns.Count; i++)                                                    // create sub root..
            {
                writer.WriteElementString(dt.Columns[i].ColumnName, dt.Rows[0][i].ToString());
            }
            writer.WriteEndElement();
            writer.WriteEndElement();                                              // end root node
            writer.WriteEndDocument();
        }
    }





Call:

protected void Page_Load(object sender, EventArgs e)
    {
                  WriteXML(createDT());
     }



Output :

my.xml

<?xml version="1.0" encoding="utf-8"?>
<root>
  <title>fafasf</title>
  <metakeyword>dfvvbb</metakeyword>
  <metadescription>qwert</metadescription>
  <heading>vgttt</heading>
  <albumurl>1313</albumurl>
  <noofimg>asdad</noofimg>
  <albumname>opopi</albumname>
  <date>t56647</date>
  <Gallery>
    <imagename>gfgfg</imagename>
    <imageurl>jhkhjk</imageurl>
    <position>kjhjk</position>
    <imagealbumname>etert</imagealbumname>
  </Gallery>
</root>

No comments:

Post a Comment