在C#中,写入XML文档通常可以通过几种不同的方法来实现,每种方法都有其适用场景。以下是三种常用的方法及其详细介绍:
### 1. 使用`XmlDocument`类
`XmlDocument`类提供了一种在内存中创建和修改XML文档的方式。你可以使用它来构建DOM(文档对象模型),然后将其保存到文件中。
using System;
using System.Xml;
class Program
{
static void Main()
{
XmlDocument doc = new XmlDocument();
// 创建一个根节点
XmlElement root = doc.CreateElement(string.Empty, "Books", string.Empty);
doc.AppendChild(root);
// 添加子节点
XmlElement book = doc.CreateElement(string.Empty, "Book", string.Empty);
book.SetAttribute("ISBN", "123456789");
root.AppendChild(book);
// 添加文本节点
XmlElement title = doc.CreateElement(string.Empty, "Title", string.Empty);
title.InnerText = "C# Programming";
book.AppendChild(title);
// 保存文档
doc.Save("Books.xml");
}
}
### 2. 使用`XDocument`类(LINQ to XML)
LINQ to XML提供了一种更现代、更简洁的方式来处理XML数据。它允许你使用LINQ查询来操作XML文档。
using System;
using System.Xml.Linq;
class Program
{
static void Main()
{
XDocument doc = new XDocument(
new XElement("Books",
new XElement("Book",
new XAttribute("ISBN", "123456789"),
new XElement("Title", "C# Programming")
)
)
);
// 保存文档
doc.Save("Books.xml");
}
}
### 3. 使用`XmlWriter`类
`XmlWriter`类提供了一种低级别的、面向流的API来创建XML文档。它允许你精细控制XML的生成过程,但相对于前两种方法,它可能更加复杂和繁琐。
using System;
using System.Xml;
class Program
{
static void Main()
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using (XmlWriter writer = XmlWriter.Create("Books.xml", settings))
{
writer.WriteStartDocument();
writer.WriteStartElement("Books");
writer.WriteStartElement("Book");
writer.WriteAttributeString("ISBN", "123456789");
writer.WriteStartElement("Title");
writer.WriteString("C# Programming");
writer.WriteEndElement(); // Title
writer.WriteEndElement(); // Book
writer.WriteEndElement(); // Books
writer.WriteEndDocument();
}
}
}
每种方法都有其优点和适用场景。`XmlDocument`和`XDocument`提供了更高级别的抽象,使得操作XML更加直观和方便。而`XmlWriter`则提供了更灵活的控制,适合需要精确控制XML输出格式的场景。