C# XmlWriter
最后修改于 2023 年 7 月 5 日
C# XmlWriter 教程展示了如何在 C# 中使用 XmlWriter 编写 XML 数据。
XmlWriter
XmlWriter
表示一个编写器,它提供了一种快速、非缓存、仅向前的方式来生成具有 XML 的流或文件。
XmlWriter
可以在 System.Xml
命名空间中使用。
C# XmlWriter 示例
以下示例创建了一个简单的 C# XmlWriter。
Program.cs
using System.Xml; var sts = new XmlWriterSettings() { Indent = true, }; using XmlWriter writer = XmlWriter.Create("data.xml", sts); writer.WriteStartDocument(); writer.WriteStartElement("value"); writer.WriteValue(6); writer.WriteEndElement(); writer.WriteEndDocument(); Console.WriteLine("XML document created");
我们创建一个新的 XML 文档。它包含 XML 声明和单个 XML 标签。
var sts = new XmlWriterSettings() { Indent = true, }; using XmlWriter writer = XmlWriter.Create("data.xml", sts);
XmlWriter
使用 Create
方法创建。我们将文档的名称和设置传递给该方法。
writer.WriteStartDocument();
WriteStartDocument
方法启动一个新文档。
writer.WriteStartElement("value"); writer.WriteValue(6); writer.WriteEndElement();
WriteStartElement
和 WriteEndElement
对用于向文档添加新元素。 WriteValue
写入一个简单的类型化值。
writer.WriteEndDocument();
WriteEndDocument
关闭所有打开的元素或属性,并将编写器恢复到起始状态。
$ dotnet run XML document created $ cat data.xml <?xml version="1.0" encoding="utf-8"?> <value>6</value>
C# XmlWriter 示例 II
以下示例创建一个包含两本书的 XML 文件。
Program.cs
using System.Xml; var sts = new XmlWriterSettings() { Indent = true, }; using var writer = XmlWriter.Create("books.xml", sts); writer.WriteStartDocument(); writer.WriteStartElement("bookstore"); writer.WriteStartElement("book"); writer.WriteAttributeString("genre", "Science Fiction"); writer.WriteStartElement("title"); writer.WriteString("Dune"); writer.WriteEndElement(); writer.WriteStartElement("author"); writer.WriteString("Frank Herbert"); writer.WriteEndElement(); writer.WriteStartElement("price"); writer.WriteString("8.99"); writer.WriteEndElement(); writer.WriteEndElement(); // end of book writer.WriteStartElement("book"); writer.WriteAttributeString("genre", "Novel"); writer.WriteStartElement("title"); writer.WriteString("Old Goriot"); writer.WriteEndElement(); writer.WriteStartElement("author"); writer.WriteString("Honoré de Balzac"); writer.WriteEndElement(); writer.WriteStartElement("price"); writer.WriteString("9.0"); writer.WriteEndElement(); writer.WriteEndElement(); // end of book writer.WriteEndDocument(); Console.WriteLine("XML document created");
除了 XML 标签,我们还使用 WriteAttributeString
创建属性。
$ dotnet run XML document created $ cat books.xml <?xml version="1.0" encoding="utf-8"?> <bookstore> <book genre="Science Fiction"> <title>Dune</title> <author>Frank Herbert</author> <price>8.99</price> </book> <book genre="Novel"> <title>Old Goriot</title> <author>Honoré de Balzac</author> <price>9.0</price> </book> </bookstore>
C# XmlWriter 示例 III
下一个示例创建一个包含产品的 XML 文件。
Program.cs
using System.Xml; var sts = new XmlWriterSettings() { Indent = true, }; using var writer = XmlWriter.Create("products.xml", sts); var products = new List<Product> { new Product(1, "Product A", 12.2M), new Product(2, "Product B", 11.3M), new Product(3, "Product C", 9M), new Product(4, "Product D", 5.6M), new Product(5, "Product E", 11.7M) }; writer.WriteStartDocument(); writer.WriteStartElement("products"); foreach (var product in products) { writer.WriteStartElement("product"); writer.WriteStartElement("id"); writer.WriteValue(product.id); writer.WriteEndElement(); writer.WriteStartElement("name"); writer.WriteValue(product.name); writer.WriteEndElement(); writer.WriteStartElement("price"); writer.WriteValue(product.price); writer.WriteEndElement(); writer.WriteEndElement(); // end product } writer.WriteEndElement(); writer.WriteEndDocument(); Console.WriteLine("XML document created"); record Product(int id, string name, decimal price);
我们有一个使用 C# 记录类型创建的产品列表。 我们遍历该列表并从对象生成 XML 文件。
$ dotnet run XML document created $ cat products.xml <?xml version="1.0" encoding="utf-8"?> <products> <product> <id>1</id> <name>Product A</name> <price>12.2</price> </product> <product> <id>2</id> <name>Product B</name> <price>11.3</price> </product> <product> <id>3</id> <name>Product C</name> <price>9</price> </product> <product> <id>4</id> <name>Product D</name> <price>5.6</price> </product> <product> <id>5</id> <name>Product E</name> <price>11.7</price> </product> </products>
来源
在本文中,我们使用 XmlWriter
编写了 XML 数据。
作者
列出所有 C# 教程。