17.5. Creating an XML Document Programmatically

Problem

You have data that you want to put into a more structured form, such as an XML document.

Solution

Suppose you have the following information for an address book that you want to turn into XML:

Name

Phone

Tim

999-888-0000

Newman

666-666-6666

Harold

777-555-3333

Use the XmlTextWriter to create XML for this table:

XmlTextWriter writer = new XmlTextWriter(Console.Out);
writer.Formatting = Formatting.Indented;
writer.WriteStartElement("AddressBook");
writer.WriteStartElement("Contact");
writer.WriteAttributeString("name", "Tim");
writer.WriteAttributeString("phone", "999-888-0000");
writer.WriteEndElement( );
writer.WriteStartElement("Contact");
writer.WriteAttributeString("name", "Newman");
writer.WriteAttributeString("phone", "666-666-6666");
writer.WriteEndElement( );
writer.WriteStartElement("Contact");
writer.WriteAttributeString("name", "Harold");
writer.WriteAttributeString("phone", "777-555-3333");
writer.WriteEndElement( );
writer.WriteEndElement( );
writer.Close( );

Or you can use the XmlDocument class to programmatically construct XML from other data:

public static void CreateXML( ) { // Start by making an XmlDocument XmlDocument xmlDoc = new XmlDocument( ); // create a root node for the document XmlElement addrBook = xmlDoc.CreateElement("AddressBook"); xmlDoc.AppendChild(addrBook); // create the Tim contact XmlElement contact = xmlDoc.CreateElement("Contact"); contact.SetAttribute("name","Tim"); contact.SetAttribute("phone","999-888-0000"); ...

Get C# Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.