在软件开发中,XML(可扩展标记语言)是一种常用的数据存储格式,它具有良好的可读性和结构化特性。C# 提供了多种内置工具和库来方便地处理 XML 数据。本篇文章将介绍如何使用 C# 进行基本的 XML 操作。
在 C# 中创建 XML 文档可以借助 System.Xml
命名空间中的类。首先,确保你已经引用了 System.XML 命名空间:
using System;
using System.Xml;
public class Program
{
public static void Main()
{
XmlDocument doc = new XmlDocument();
// 创建根元素
XmlElement root = doc.CreateElement("Books");
doc.AppendChild(root);
// 添加子元素
for (int i = 1; i <= 3; i++)
{
XmlElement book = doc.CreateElement("Book");
book.SetAttribute("id", "book" + i.ToString());
XmlText title = doc.CreateTextNode("C# Programming");
XmlText author = doc.CreateTextNode("John Doe");
book.AppendChild(title);
book.AppendChild(author);
root.AppendChild(book);
}
// 保存到文件
doc.Save("books.xml");
}
}
<?xml version="1.0"?>
<Books>
<Book id="book1">
<#C# Programming/>
<author>John Doe</author>
</Book>
<Book id="book2">
<#C# Programming/>
<author>John Doe</author>
</Book>
<Book id="book3">
<#C# Programming/>
<author>John Doe</author>
</Book>
</Books>
解析现有的 XML 文件也是 C# 的一个重要功能。可以使用 XmlDocument
类加载和遍历文件。
public class Program
{
public static void Main()
{
XmlDocument doc = new XmlDocument();
// 加载XML文档
doc.Load("books.xml");
XmlNode root = doc.DocumentElement;
Console.WriteLine($"Root element: {root.Name}");
foreach (XmlNode bookNode in root.ChildNodes)
{
string id = bookNode.Attributes["id"].Value;
string title = ((XmlElement)bookNode.FirstChild).InnerText;
string author = ((XmlElement)((XmlNode)bookNode.LastChild)).InnerText;
Console.WriteLine($"Book ID: {id}");
Console.WriteLine($"Title: {title}");
Console.WriteLine($"Author: {author}\n");
}
}
}
Root element: Books
Book ID: book1
Title: C# Programming
Author: John Doe
Book ID: book2
Title: C# Programming
Author: John Doe
Book ID: book3
Title: C# Programming
Author: John Doe
LINQ to XML 是一个更现代和灵活的库,它提供了类似于查询操作的方法来处理 XML 数据。下面展示如何使用 System.Xml.Linq
命名空间来实现相似的功能。
using System;
using System.Xml.Linq;
public class Program
{
public static void Main()
{
XDocument doc = new XDocument(
new XElement("Books",
Enumerable.Range(1, 3).Select(i =>
new XElement("Book",
new XAttribute("id", "book" + i.ToString()),
new XElement("title", "C# Programming"),
new XElement("author", "John Doe")))));
doc.Save("books.xml");
}
}
<?xml version="1.0"?>
<Books>
<Book id="book1">
<title>C# Programming</title>
<author>John Doe</author>
</Book>
<Book id="book2">
<title>C# Programming</title>
<author>John Doe</author>
</Book>
<Book id="book3">
<title>C# Programming</title>
<author>John Doe</author>
</Book>
</Books>
通过上述示例,我们可以看到 C# 提供了多种方式来操作 XML 数据。使用 System.Xml
命名空间中的类可以实现简单的读写功能,而 LINQ to XML 则提供了更强大和灵活的处理机制。选择合适的工具取决于具体的应用场景和个人偏好。
希望这些例子能够帮助你在实际开发中更加高效地处理 C# 中的 XML 操作!