c语言编程笔录

首页 >   > 笔记大全

笔记大全

xml 文件操作功能类的示例代码详解

更新时间:2023-11-28

1. 读取 XML 文件内容

读取 XML 文件内容是常见的操作之一。以下是一个示例代码,演示如何使用 C# 解析 XML 文件并逐行读取其内容。


using System;
using System.Xml;

public class XMLReader {
   public static void Main() {
      XmlTextReader reader = new XmlTextReader("books.xml");
      
      while (reader.Read()) {
         switch (reader.NodeType) {
            case XmlNodeType.Element: // 节点类型为元素
               Console.Write("<" + reader.Name);
               Console.WriteLine(">");
               break;
            case XmlNodeType.Text: // 节点类型为文本
               Console.WriteLine(reader.Value);
               break;
            case XmlNodeType.EndElement: // 节点类型为元素的结束标记
               Console.Write("");
               break;
         }
      }
   }
}

通过上述代码,我们可以用 C# 解析 books.xml 并逐行打印其内容。

2. 在 XML 文件中新增节点

在 XML 文件中新增节点功能也是很实用的。下面是一个示例代码,演示如何使用 C# 在 XML 文件中新增节点。


using System;
using System.Xml;

public class XMLWriter {
   public static void Main() {
      XmlDocument doc = new XmlDocument();
      doc.Load("books.xml");

      XmlElement root = doc.DocumentElement;
      XmlElement book = doc.CreateElement("book");

      XmlAttribute attribute = doc.CreateAttribute("ISBN");
      attribute.Value = "978-3-16-148410-0";
      book.SetAttributeNode(attribute);

      XmlNode title = doc.CreateElement("title");
      title.InnerText = "Deep Learning";
      book.AppendChild(title);

      XmlNode author = doc.CreateElement("author");
      author.InnerText = "Ian Goodfellow";
      book.AppendChild(author);

      XmlNode price = doc.CreateElement("price");
      price.InnerText = "35.00";
      book.AppendChild(price);

      root.InsertBefore(book, root.FirstChild);

      doc.Save("books.xml");
   }
}

通过上述代码,我们成功向 books.xml 中插入了一本新书 "Deep Learning"。

3. 在 XML 文件中删除节点

删除节点也是 XML 文件操作中很实用的功能。以下是一个示例代码,演示如何使用 C# 在 XML 文件中删除节点。


using System;
using System.Xml;

public class XMLDeleter {
   public static void Main() {
      XmlDocument doc = new XmlDocument();
      doc.Load("books.xml");

      XmlNodeList nodes = doc.SelectNodes("//book[@ISBN='978-3-16-148410-0']");

      foreach (XmlNode node in nodes) {
         node.ParentNode.RemoveChild(node);
      }

      doc.Save("books.xml");
   }
}

通过上述代码,我们成功从 books.xml 中删除了一本书 "Deep Learning"。

4. 在 XML 文件中更新节点

更新节点也是 XML 文件操作中很实用的功能。以下是一个示例代码,演示如何使用 C# 在 XML 文件中更新节点。


using System;
using System.Xml;

public class XMLUpdater {
   public static void Main() {
      XmlDocument doc = new XmlDocument();
      doc.Load("books.xml");

      XmlNodeList nodes = doc.SelectNodes("//book[@ISBN='978-3-16-148410-0']");

      foreach (XmlNode node in nodes) {
         XmlNode author = node.SelectSingleNode("author");
         author.InnerText = "Ian Goodfellow, Yoshua Bengio, Aaron Courville";
      }

      doc.Save("books.xml");
   }
}

通过上述代码,我们成功将书 "Deep Learning" 的 "author" 属性更新为 "Ian Goodfellow, Yoshua Bengio, Aaron Courville"。