Tuesday, December 31, 2013

Generate XML from the Class Template




   In this post we are going to see how to generate the xml file from a template class. To generate the xml file from the class we have to specify the class as serialize and column as xml attribute to generate the values as attribute in xml file.




output:

<?xml version="1.0" encoding="utf-8"?>
<PeopleInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Peoples>
    <Person Name="Rajesh" Email="rajhseg@gmail.com" StreetAddress="R.E St" AdditionNotes="Notes 1" Birthday="2002-01-01T11:01:08.3657823+05:30" />
    <Person Name="Suresh" Email="sdsfs@gmail.com" StreetAddress="RG St" AdditionNotes="Notes 2" Birthday="1990-01-01T11:01:08.3667824+05:30" />
    <Person Name="Krish" Email="krisg@gmail.com" StreetAddress="GW St" AdditionNotes="Notes 3" Birthday="1992-01-01T11:01:08.3667824+05:30" />
  </Peoples>
</PeopleInfo>




C#:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using System.IO;

namespace ConsoleApplication1
{
    [Serializable]
    public class Person
    {
        [XmlAttribute]
        public string Name
        {
            get;
            set;
        }
         
        [XmlAttribute]
        public string Email
        {
            get;
            set;
        }

        [XmlAttribute]
        public stringStreetAddress
        {
            get;
            set;
        }

        [XmlAttribute]
        public string AdditionNotes
        {
            get;
            set;
        }

        [XmlAttribute]
        public DateTimeBirthday
        {
            get;
            set;
        }
    }



    [Serializable]
    public class PeopleInfo
    {       
        public List<Person> Peoples { set; get; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            List<Person> Peoples = new List<Person>();
            Peoples.Add(new Person() {Name="Rajesh",Email="rajhseg@gmail.com",
                 Birthday=DateTime.Now.AddYears(-12),
                 AdditionNotes="Notes 1",StreetAddress="R.E St" });
            Peoples.Add(new Person() { Name = "Suresh", Email = "sdsfs@gmail.com"
                 Birthday = DateTime.Now.AddYears(-24), 
                 AdditionNotes = "Notes 2", StreetAddress = "RG St" });
            Peoples.Add(new Person() { Name = "Krish", Email = "krisg@gmail.com"
                 Birthday = DateTime.Now.AddYears(-22), AdditionNotes = "Notes 3"
                 StreetAddress = "GW St" });

            PeopleInfo ert = newPeopleInfo() { Peoples = Peoples};
            XmlSerializer serialize = newXmlSerializer(typeof(PeopleInfo));
            TextWriter writer = newStreamWriter(@"D:\sample.xml", true);
            serialize.Serialize(writer, ert);
            Console.Read();
        }
    }
}



In this post you can learn how to generate xml file from a class template.



No comments:

Post a Comment