C#实战:XML文档的增删改查操作教程

4 下载量 161 浏览量 更新于2024-08-29 收藏 62KB PDF 举报
在C#编程中,实现XML文档的增删改查功能是数据持久化和数据交换的重要一环。本文将带你通过实例了解如何在C#中操作XML文件,以便于管理图书信息。首先,我们将创建一个名为`Books.xml`的XML文档作为数据存储结构。 `Books.xml`文件包含了多个 `<book>` 元素,每个元素代表一本图书,包含了诸如ID、类别、标题、作者、出版年份和价格等信息。例如: ```xml <?xml version="1.0" encoding="iso-8859-1"?> <bookstore> <book id="1" category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <!-- ...其他书籍... --> </bookstore> ``` 为了处理这些数据,我们需要定义一个名为 `BookInfo` 的实体类,该类对应XML中的 `<book>` 元素: ```csharp public class BookInfo { public int BookId { set; get; } public string Title { set; get; } public string Language { set; get; } public string Author { set; get; } public int Year { set; get; } public decimal Price { set; get; } } ``` 接下来,我们来展示如何实现增删改查功能: 1. 读取XML数据: 使用 `XDocument` 或 `XElement` 类可以轻松解析和访问XML内容。例如,我们可以使用 `XDocument.Load` 方法加载XML文件: ```csharp XDocument xmlDoc = XDocument.Load("Books.xml"); var books = xmlDoc.Descendants("book").Select(book => new BookInfo { BookId = int.Parse(book.Element("id").Value), // ...其他属性的解析... }); ``` 2. 添加新书(插入): 对于添加新书,可以先创建 `BookInfo` 对象,然后将其转换为 `XElement` 并插入到XML中: ```csharp var newBook = new BookInfo { BookId = 5, Title = "New Cookbook", // ...其他属性... }; var newBookElement = new XElement("book", new BookInfoToXml(newBook)); xmlDoc.Root.Add(newBookElement); ``` 3. 删除一本书: 使用 `XElement.Remove()` 方法移除指定ID的书: ```csharp var bookToRemove = xmlDoc.Descendants("book") .FirstOrDefault(book => int.Parse(book.Element("id").Value) == 1); if (bookToRemove != null) bookToRemove.Remove(); ``` 4. 修改一本书: 获取到要修改的书籍后,更新其属性并保存到XML: ```csharp var bookToUpdate = xmlDoc.Descendants("book") .FirstOrDefault(book => int.Parse(book.Element("id").Value) == 2); if (bookToUpdate != null) { bookToUpdate.Element("title").Value = "New Title"; // ...其他属性的修改... xmlDoc.Save("Books.xml"); } ``` 5. 查询书籍: 通过 `XElement` 的 `Where` 方法筛选满足条件的书籍: ```csharp var booksByCategory = xmlDoc.Descendants("book") .Where(book => (string)book.Element("category") == "WEB"); foreach (var book in booksByCategory) { Console.WriteLine($"Title: {book.Element("title").Value}, Author: {book.Element("author").Value}"); } ``` 以上就是C#实现XML文档增删改查功能的基本步骤和示例。实际应用中,可能需要对错误处理和性能优化进行考虑,以适应大规模或频繁操作的需求。希望这个实例对你理解和实现C# XML操作有所帮助。