How to create xml from a template-c#

Go To


I have a xml template like this


Form this xml template file,dynamicaly i want to generate an xml.How can i do this.

Output xml should look like this


How can i achieve this.What all changes i need to make in template file.How to read and create xml from this tempalte xml file using c#.

2012-04-04 07:12
by user922834
Where's the data coming from that needs to go into the XML - kaj 2012-04-04 07:14


You can use XmlSerializer and create a simple class with properties according to the template:

public class User
   public UserId{get;set;}


And serialize the class to XML file.

There's a good example here.

Option #2:
If for some reason you do not want to use XmlSerializer use XmlWriter - in order to prevent forgetting to close elements I suggest you use "AutoClose" XmlWriter - I've blogged about how to create this simple class on my blog - XmlWriter that automatically close elements using IDisposable

2012-04-04 07:18
by Dror Helper
i am not plannig to use xmlserialize - user922834 2012-04-04 07:19
Why not? this way you only need to maintain code and do not need to write every single XML node "by hand - Dror Helper 2012-04-04 07:21
Better answer than what i gav - Nikhil Agrawal 2012-04-04 07:23
i have list in which it contain three objects.I want to create an xml with all three object details,then how it will be - user922834 2012-04-04 07:30
There are several attributes you can use to change the way that take a look at this SO question - Dror Helper 2012-04-04 07:34
XmlWriter that automatically close elements using IDisposable has a pretty good implementation with c# using and .Net IDisposable. If you'd like XmlWriter, this is a good way to avoid all the WriteEnd... methods - gmaran23 2014-05-28 07:06
@gmaran23 You know it's my blog post - right? : - Dror Helper 2014-05-29 08:52
I do:) And I liked the way you of using the using. Seems pretty native c# - gmaran23 2014-06-02 09:32


Serializing is an option, but if you really need a template, you can use this

here is an example


UserClass user = new UserClass();
user.UserId = 1;
user.UserName = "my name";
User.Roles = new List<string>(){"admin", "sales"};
//some other properties...    

var compiler = new Compiler()
            .AddElementToScope("user", user);

var compiled = compiler.CompileXml(@"C:\...\myXml.xml")

XLM Source

  <Roles Tor.Repeat="role in user.Roles">


  <UserName>my name</UserName>

you can install it from Nuget too:

Install-Package SuperXML
2015-08-07 06:01
by bto.rdz
can downvoter plase let me know why this is not an option - bto.rdz 2015-08-07 17:47



var templateXML = "C://template.xml"//full path for the template xml XmlDocument doc = new XmlDocument(); FileStream fs = new FileStream(templateXML, FileMode.Open, FileAccess.Read); doc.Load(fs); XmlNode node = doc.DocumentElement; XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable); nsmgr.AddNamespace("pf", ""); node = doc.DocumentElement; nodeName = "/pf:Message/pf:User/pf:UserID"; node.SelectSingleNode(nodeName, nsmgr).InnerXml = "user1";put you custom value nodeName = "/pf:Message/pf:User/pf:UserName";
node.SelectSingleNode(nodeName, nsmgr).InnerXml = "fr";put you custom value .... ..... ....... var postData = node.ParentNode.InnerXml; postData = node.OuterXml;

2016-09-29 11:19
by Rahul Sen