xml 文件操作功能类的示例代码详解
更新时间:2023-11-281. 读取 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("" + reader.Name);
Console.WriteLine(">");
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"。