XML (Extensible Markup Language) is a widely used format for storing and transporting data.
In C#, you can create XML files efficiently using the XmlWriter and XDocument classes. This guide covers both methods with practical examples.
Writing XML Using XmlWriter
XmlWriter provides a fast and memory-efficient way to generate XML files by writing elements sequentially.
Example:
using System;
using System.Xml;
class Program
{
static void Main()
{
using (XmlWriter writer = XmlWriter.Create("person.xml"))
{
writer.WriteStartDocument();
writer.WriteStartElement("Person");
writer.WriteElementString("FirstName", "John");
writer.WriteElementString("LastName", "Doe");
writer.WriteElementString("Age", "30");
writer.WriteEndElement();
writer.WriteEndDocument();
}
Console.WriteLine("XML file created successfully.");
}
}
Output (person.xml):
<?xml version="1.0" encoding="utf-8"?>
<Person>
<FirstName>John</FirstName>
<LastName>Doe</LastName>
<Age>30</Age>
</Person>
Writing XML Using XDocument
The XDocument class from LINQ to XML provides a more readable and flexible way to create XML files.
Example:
using System;
using System.Xml.Linq;
class Program
{
static void Main()
{
XDocument doc = new XDocument(
new XElement("Person",
new XElement("FirstName", "John"),
new XElement("LastName", "Doe"),
new XElement("Age", "30")
)
);
doc.Save("person.xml");
Console.WriteLine("XML file created successfully.");
}
}
This approach is ideal for working with complex XML structures and integrating LINQ queries.
When to Use Each Method
- Use
XmlWriter when performance is critical and you need to write XML sequentially.
- Use
XDocument when you need a more readable, maintainable, and flexible way to manipulate XML.
Conclusion
Writing XML files in C# is straightforward with XmlWriter and XDocument. Choose the method that best suits your needs for performance, readability, and maintainability.
Walt is a computer scientist, software engineer, startup founder and previous mentor for a coding bootcamp. He has been creating software for the past 20 years.
Last updated on: