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.
Stay Sharp. Weekly Insights.
New posts, framework updates and weekly software conversations.
No spam. Unsubscribe anytime.
Walt is a software engineer, startup founder and previous mentor for a coding bootcamp. He has been creating software for the past 20+ years.