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.