You are here:About>Computing & Technology>Visual Basic> Using VB.NET> Coding an XML Configuration File
About.comVisual Basic
Newsletters & RSSEmail to a friendSubmit to Digg

Coding an XML Configuration File

From Dan Mabbutt,
Your Guide to Visual Basic.
FREE Newsletter. Sign Up Now!

The code . . .

In my opinion, however, if you want your program to be as easy to understand as possible, and you want the data itself to be easy-to-read text too, then creating a configuration file using XML methods is probably the way to go. Most modern programming technologies now completely support XML and you can open an XML file in either Notepad or most browsers to see what's in it. Writing the file directly with XML methods in VB.NET makes what is happening as clear as possible in the program code. The alternative of "serializing" to an XML file does a lot of the work for you but also makes the creation of the XML a "black box". The example you will see here puts it all out there in the open.

As an example of an alternative, here's a program designed to be used as a desktop utility for simple calculations of stock market prices and amounts. The starting values are set using an XML configuration file. The starting values that will be used the next time the program is loaded can be set using an update routine that overwrites the XML file with new values. The illustration below shows the XML file displayed in IE. (IE is one of the best XML utilities!)

--------
Click Here to display the illustration
Click the Back button on your browser to return
--------

The first task for the program is to write the XML file. The code that writes the XML file is shown below.

  Dim Doc As New XmlDocument
  'Create a 'vanilla' XML Declaration (processing instruction)
  Dim myXmlDeclaration As XmlDeclaration
  myXmlDeclaration = _
    Doc.CreateXmlDeclaration("1.0", "UTF-8", "yes")
  Doc.AppendChild(myXmlDeclaration)
  '       <-Root Created
  Dim Root As XmlElement
  Root = Doc.CreateElement("StockCalcDefaults")
  'Create a company name child node
  Dim Child As XmlElement
  Child = Doc.CreateElement("companyName")
  Child.InnerText = companyName.Text
  Root.AppendChild(Child)
  'Create a Buy Price child node
  Child = Doc.CreateElement("buyPrice")
  Child.InnerText = _
    CStr(Decimal.Round(buyPrice.Value, 2))
  Root.AppendChild(Child)
  'Create a Sell Price child node
  Child = Doc.CreateElement("sellPrice")
  Child.InnerText = _
    CStr(Decimal.Round(sellPrice.Value, 2))
  Root.AppendChild(Child)
  'Create a Number of Shares child node
  Child = Doc.CreateElement("numShares")
  Child.InnerText = CStr(numShares.Value)
  Root.AppendChild(Child)
  'Add an attribute to the child node
  Dim Attr As XmlAttribute
  Attr = Doc.CreateAttribute("incByThousand")
  Attr.Value = CStr(incByThousand.Checked)
  Child.Attributes.Append(Attr)
  'Create a Profit Amount child node
  Child = Doc.CreateElement("profitAmount")
  Child.InnerText = _
    CStr(Decimal.Round(profitAmount.Value, 2))
  Root.AppendChild(Child)
  '       <-Root Added to Doc
  Doc.AppendChild(Root)
  'Write XML to a file
  Dim Output As New XmlTextWriter( _
    "StockDefaults.xml", _
    System.Text.Encoding.UTF8)
  '       <-Document Written
  Doc.WriteTo(Output)
  Output.Close()

The explanation of the code - and the download link - for the program is on the next page.

 All Topics | Email Article | | |
Advertising Info | News & Events | Work at About | SiteMap | Reprints | HelpOur Story | Be a Guide
User Agreement | Ethics Policy | Patent Info. | Privacy Policy©2008 About, Inc., A part of The New York Times Company. All rights reserved.