在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。