在C#中操作XML数据,你可以使用.NET框架自带的System.Xml命名空间。下面是一些基本的操作XML数据的示例:
假设你有一个名为"sample.xml"的文件,其内容如下:
<students>
<student id="1">
<name>John Doe</name>
<age>20</age>
</student>
<student id="2">
<name>Jane Smith</name>
<age>22</age>
</student>
</students>
你可以使用以下代码来读取这个文件:
using System.Xml;
XmlDocument doc = new XmlDocument();
doc.Load("sample.xml");
XmlNode root = doc.DocumentElement;
foreach (XmlNode node in root.ChildNodes)
{
if (node.NodeType == XmlNodeType.Element && node.Name == "student")
{
string id = node.Attributes["id"].Value;
string name = node.SelectSingleNode("name").InnerText;
int age = int.Parse(node.SelectSingleNode("age").InnerText);
Console.WriteLine($"Student ID: {id}, Name: {name}, Age: {age}");
}
}
你可以使用XmlDocument类来创建新的XML文档:
XmlDocument doc = new XmlDocument();
doc.LoadXml("<students></students>");
XmlNode root = doc.DocumentElement;
XmlNode studentNode = doc.CreateNode(XmlNodeType.Element, "student", null);
XmlAttribute idAttr = doc.CreateAttribute("id");
idAttr.Value = "1";
studentNode.Attributes.Append(idAttr);
XmlNode nameNode = doc.CreateNode(XmlNodeType.Element, "name", null);
nameNode.InnerText = "John Doe";
studentNode.AppendChild(nameNode);
XmlNode ageNode = doc.CreateNode(XmlNodeType.Element, "age", null);
ageNode.InnerText = "20";
studentNode.AppendChild(ageNode);
root.AppendChild(studentNode);
这段代码会创建一个新的XML文档,其中包含一个名为"student"的元素,该元素具有"id"、"name"和"age"子元素。
你可以使用XmlDocument类的SelectSingleNode和SelectNodes方法来查找和修改XML元素:
// 查找第一个名为"name"的元素
XmlNode nameNode = doc.SelectSingleNode("/students/student/name");
if (nameNode != null)
{
nameNode.InnerText = "Jane Doe";
}
// 查找所有名为"age"的元素,并将它们的值增加1
XmlNodeList ageNodes = doc.SelectNodes("/students/student/age");
if (ageNodes != null)
{
foreach (XmlNode ageNode in ageNodes)
{
int age = int.Parse(ageNode.InnerText);
ageNode.InnerText = (age + 1).ToString();
}
}
这段代码会查找第一个名为"name"的元素,并将其值更改为"Jane Doe"。然后,它会查找所有名为"age"的元素,并将它们的值增加1。