tags:

views:

21

answers:

3

What is the best way to fill a template file with variables, which are collected from a Windows Form or Web Page. I want to create a wizard program that collects some data from user, for instance, reportname, reporttype, etc. and I need to create then some xml files (templates) with these variables inserted.

+1  A: 

One possibility would be to save the variables in an XML-Document (structure is up to you) and the use XSTL to transform it into your target XML file.

If you only need to insert a few variables, you could also define some custom placeholder format (e.g. '$XXX$' or even '{0}'...) and use simple string replacement.

MartinStettner
+1  A: 

Well, first you need to save those variables somewhere, like a class or a Hashtable.
Then you load the xml file.

  XmlDocument doc = new XmlDocument();
  doc.Load("template.xml");

Then for each variable you select the proper node (using xpath) and change the inner contents to the variable value, like this:

  XmlNode node = xmlDoc.SelectSingleNode("Root/Node/Element");  
  node.InnerText="newValue"

The best way to make this all automatic would be saving both xpaths and the variables names into a dictionary/hashtable and these use it to lookup where a variable goes.

You would then save the file.

  doc.Save("result.xml");

Note: Ask for more information regarding the mapping if you didn't understand it.

Maushu
A: 

Thank you all for your answers :)

Azat