📅  最后修改于: 2023-12-03 15:13:49.957000             🧑  作者: Mango
C# XML 是一种处理 XML 数据的编程语言,它提供了一系列的类和方法用于读取、生成和修改 XML 数据。在应用程序中使用 XML 可以方便地存储和传输数据。
XML(Extensible Markup Language,可扩展标记语言)是一种用于描述数据的标记语言。XML 使用标记来定义数据元素,也称为节点(node),并使用属性描述节点的特征。
举个例子:
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="Children">
<title lang="en">Harry Potter</title>
<author>J.K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="Web">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
上面的 XML 代码描述了一个书店的信息,包括每本书的标题、作者、年份和价格。在代码中,<?xml version="1.0" encoding="UTF-8"?>
表示这是 XML 文件,并且使用了 UTF-8 编码。
C# XML 提供了一系列的类和方法用于读取、生成和修改 XML 数据。常用的类有 XmlDocument
、XmlReader
和 XmlWriter
。
要读取 XML,可以使用 XmlDocument
类。以下是读取上面示例中的 XML 数据的代码:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("books.xml");
XmlNodeList bookNodes = xmlDoc.GetElementsByTagName("book");
foreach(XmlNode bookNode in bookNodes) {
string title = bookNode.SelectSingleNode("title").InnerText;
string author = bookNode.SelectSingleNode("author").InnerText;
string year = bookNode.SelectSingleNode("year").InnerText;
string price = bookNode.SelectSingleNode("price").InnerText;
Console.WriteLine("Title: {0}", title);
Console.WriteLine("Author: {0}", author);
Console.WriteLine("Year: {0}", year);
Console.WriteLine("Price: {0}", price);
}
上述代码首先创建了一个 XmlDocument
对象,加载了 XML 文件。然后使用 GetElementsByTagName
方法获取所有 book
节点,并使用 foreach
循环遍历每本书的信息。
使用 SelectSingleNode
方法可以获取指定节点的信息,如上述代码中的 title
、author
、year
和 price
。
要生成 XML,可以使用 XmlWriter
类。以下是生成一个简单的 XML 数据的代码:
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
using(XmlWriter writer = XmlWriter.Create("test.xml", settings)) {
writer.WriteStartElement("root");
writer.WriteStartElement("person");
writer.WriteAttributeString("id", "1");
writer.WriteElementString("name", "John");
writer.WriteElementString("age", "35");
writer.WriteEndElement();
writer.WriteEndElement();
}
以上代码创建了一个 XmlWriter
对象,通过 XmlWriter.Create
方法指定输出文件名和输出格式。然后使用各种方法向 XML 中写入数据。
要修改 XML,可以使用 XmlDocument
类。以下是修改上面示例中的 XML 数据的代码:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("books.xml");
XmlNodeList bookNodes = xmlDoc.GetElementsByTagName("book");
foreach(XmlNode bookNode in bookNodes) {
if((bookNode.SelectSingleNode("title").InnerText == "Learning XML") &&
(bookNode.SelectSingleNode("price").InnerText == "39.95")) {
bookNode.SelectSingleNode("price").InnerText = "29.95";
}
}
xmlDoc.Save("new_books.xml");
上述代码首先加载 XML 文件,并使用 GetElementsByTagName
方法获取所有 book
节点。然后使用 foreach
循环遍历每本书,如果找到了 "Learning XML" 这本书,并且价格为 39.95 美元,就将价格修改为 29.95 美元。
最后使用 Save
方法保存修改后的 XML 数据。
C# XML 提供了一系列的类和方法用于读取、生成和修改 XML 数据。要学习更多关于 C# XML 的知识,请参考官方文档。