📜  XMLWriter 编写 xml C# (1)

📅  最后修改于: 2023-12-03 15:21:18.965000             🧑  作者: Mango

使用 XMLWriter 编写 XML

在 C# 中,我们可以使用 XmlWriter 类来创建、写入和保存 XML 文件。

创建 XMLWriter

要使用 XmlWriter,我们首先需要创建一个 XmlWriterSettings 对象,并设置以下属性:

  • Indent:指定是否缩进输出,默认为 false
  • Encoding:指定写入器的编码,默认为 UTF-8。
  • NewLineChars:指定换行符。
var settings = new XmlWriterSettings
{
    Indent = true,
    Encoding = Encoding.UTF8,
    NewLineChars = Environment.NewLine
};

通过 XmlWriter.Create 静态方法,我们可以创建一个输出到文件的 XmlWriter

using var writer = XmlWriter.Create("example.xml", settings);
写入 XML

使用 XmlWriter 编写 XML 非常简单。我们可以使用 WriteStartElementWriteEndElementWriteAttributeString 等方法来创建元素和属性。

// 开始文档
writer.WriteStartDocument();
 
// 创建根元素
writer.WriteStartElement("books");
 
// 创建子元素及其属性
writer.WriteStartElement("book");
writer.WriteAttributeString("id", "1");
writer.WriteElementString("title", "The C# Programming Language");
writer.WriteElementString("author", "Anders Hejlsberg, Mads Torgersen, Scott Wiltamuth");
writer.WriteEndElement();
 
// 结束根元素
writer.WriteEndElement();
 
// 结束文档
writer.WriteEndDocument();

在上面的例子中,我们创建了一个名为 books 的根元素,并在里面创建了一个名为 book 的子元素,还添加了一个 id 属性以及 titleauthor 子元素。

完整示例

下面是一个完整的示例,演示了如何使用 XmlWriter 创建一个 XML 文档:

using System.IO;
using System.Text;
using System.Xml;

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
 
            var settings = new XmlWriterSettings
            {
                Indent = true,
                Encoding = Encoding.GetEncoding("gb2312"),
                NewLineChars = Environment.NewLine
            };
 
            // 创建文件
            using var stream = new FileStream("example.xml", FileMode.Create);
            using var writer = XmlWriter.Create(stream, settings);
 
            // 开始文档
            writer.WriteStartDocument();
 
            // 创建根元素
            writer.WriteStartElement("books");
 
            // 创建子元素及其属性
            writer.WriteStartElement("book");
            writer.WriteAttributeString("id", "1");
            writer.WriteElementString("title", "C#高级编程");
            writer.WriteElementString("author", "Jon Skeet");
            writer.WriteEndElement();
 
            writer.WriteStartElement("book");
            writer.WriteAttributeString("id", "2");
            writer.WriteElementString("title", "C#入门经典");
            writer.WriteElementString("author", "彼得-库恩");
            writer.WriteEndElement();
 
            // 结束根元素
            writer.WriteEndElement();
 
            // 结束文档
            writer.WriteEndDocument();
        }
    }
}

运行这个示例,它将创建一个名为 example.xml 的 XML 文件,并写入以下内容:

<?xml version="1.0" encoding="gb2312"?>
<books>
  <book id="1">
    <title>C#高级编程</title>
    <author>Jon Skeet</author>
  </book>
  <book id="2">
    <title>C#入门经典</title>
    <author>彼得-库恩</author>
  </book>
</books>

现在你已经学会如何使用 XmlWriter 编写 XML,享受编写美好的 XML 文档的过程吧!