Using XmlTextWriter to write XML Documents in .NET


XML is one of the most popular topics these days. As the use of XML files is increasing, more and more developers want to learn how to write, read and consume XML documents from different programming languages. In the following tutorial, I will show you how you can use .NET Framework built in class XmlTextWriter to generate XML document in C#.

XmlTextWriter is one of many useful classes in System.Xml namespace, and it provides several useful methods to write a complete XML Document from scratch. Following form is simple ASP.NET web form asking user to input some data about the product. I will save this data in a separate XML document named Product.xml using XmlTextWriter object.

ASP.NET Web Form

Following C# code is saving all the user input values in XML file.

protected void Button1_Click(object sender, EventArgs e)
{
// Declare XmlTextWriter Object
XmlTextWriter writer = null; try
{
// Map file path to server physical root directory
string filePath = Server.MapPath("~") + "\\Product.xml"; // Create XmlTextWriter object with UTF32 Encoding
writer = new XmlTextWriter(filePath, System.Text.Encoding.UTF8);
writer.Formatting = Formatting.Indented;
// Write Xml Declaration with version 1.0 writer.WriteStartDocument();
// Write some comments writer.WriteComment("Product Information");
writer.WriteComment("Created On: " + DateTime.Now.ToString("dd-MMM-yyyy"));
writer.WriteComment("===============================");
// Write Xml Document Root Element
writer.WriteStartElement("Product");
// Write attribute name and value to current Element writer.WriteAttributeString("ProductID", TextBox1.Text);
// Write Xml Element with Name and Inner Text
writer.WriteElementString("ProductName", TextBox2.Text);
writer.WriteElementString("ProductQuantity", TextBox3.Text);
writer.WriteElementString("ProductPrice", TextBox4.Text);
// Write Product Element closing Tag
writer.WriteEndElement();
// Write End of Document writer.WriteEndDocument();
// Flush and Close Writer
writer.Flush();
Response.Redirect("Product.xml");
}
  catch (Exception ex)
    { }
    finally
    {
        writer.Close();
    }
}

and here is the XML file generated by the above code.

XmlTextWriter Output

 

 

About author


User avatar

Waqas Anwar

Founder of EzzyLearning.com, Senior Consultant, Microsoft .NET and Web Technologies

Comments