下面我将为你详细讲解“C#操作XML文件实例汇总”的完整攻略。
一、 XML文件的基础语法
要使用C#操作XML文件,首先需要了解XML文件的基础语法。XML文件由标记语言表示,具有层次结构,包含标记、属性、值等。有以下基础语法规则:
1.标记
XML文件中所有元素都由标记表示,标记有起始标记和结束标记
起始标记:<标记名>
结束标记:<!--标记名-->
2.属性
XML文件中的元素可以带有属性,属性有属性名、属性值等组成,它们需要用双引号来包裹
属性:<标记名 属性名="属性值">
3.值
XML文件中的元素也可以包含值,值可以是文本、数字、布尔值等
值:<标记名>值<!--标记名-->
示例代码:
<?xml version="1.0"?>
<students>
<student id="1">
<name>张三</name>
<age>18</age>
<gender>男</gender>
</student>
<student id="2">
<name>李四</name>
<age>20</age>
<gender>女</gender>
</student>
</students>
二、使用C#操作XML文件
在C#中可以使用XmlDocument
类来操作XML文件。常用的方法有加载XML文件、查询XML节点、新增XML元素、修改XML元素等。
1.加载XML文件
可以使用XmlDocument
的Load()
方法加载XML文件。要加载的XML文件必须存在,否则会抛出异常。
XmlDocument xml = new XmlDocument();
xml.Load("students.xml");
2.查询XML节点
可以使用XmlDocument
的SelectSingleNode()
或SelectNodes()
方法查询XML节点。
//查询根节点
XmlNode root = xml.SelectSingleNode("students");
//查询所有学生节点
XmlNodeList students = xml.SelectNodes("//student");
//查询id为1的学生节点
XmlNode student = xml.SelectSingleNode("//student[@id='1']");
//查询名为张三的学生节点
XmlNode studentWithName = xml.SelectSingleNode("//student[name='张三']");
3.新增XML元素
可以使用XmlDocument
的CreateElement()
方法创建新的XML元素,并使用AppendChild()
方法将新元素添加到现有元素中。
//新增一个学生节点
XmlElement newStudent = xml.CreateElement("student");
newStudent.SetAttribute("id", "3");//为节点添加属性
XmlElement name = xml.CreateElement("name");
name.InnerText = "王五";//为节点添加文本值
newStudent.AppendChild(name);
XmlElement age = xml.CreateElement("age");
age.InnerText = "19";
newStudent.AppendChild(age);
XmlElement gender = xml.CreateElement("gender");
gender.InnerText = "男";
newStudent.AppendChild(gender);
xml.DocumentElement.AppendChild(newStudent);//将新节点添加到文档中
4.修改XML元素
可以使用XmlNode
的InnerText
或SetAttribute()
方法修改XML节点的值或属性。
//修改id为1的学生节点的属性值
XmlNode student = xml.SelectSingleNode("//student[@id='1']");
((XmlElement)student).SetAttribute("id", "11");
//修改名为张三的学生节点的年龄
XmlNode studentWithName = xml.SelectSingleNode("//student[name='张三']");
XmlNode age = studentWithName.SelectSingleNode("age");
age.InnerText = "20";
三、完整的C#操作XML文件实例代码
using System;
using System.Xml;
namespace XmlDocumentDemo
{
class Program
{
static void Main(string[] args)
{
//加载XML文件
XmlDocument xml = new XmlDocument();
xml.Load("students.xml");
//查询根节点
XmlNode root = xml.SelectSingleNode("students");
//查询所有学生节点
XmlNodeList students = xml.SelectNodes("//student");
foreach (XmlNode student in students)
{
Console.WriteLine(student.SelectSingleNode("name").InnerText);//输出学生姓名
}
//查询id为1的学生节点
XmlNode student = xml.SelectSingleNode("//student[@id='1']");
Console.WriteLine(student.SelectSingleNode("name").InnerText);//输出学生姓名
//新增一个学生节点
XmlElement newStudent = xml.CreateElement("student");
newStudent.SetAttribute("id", "3");//为节点添加属性
XmlElement name = xml.CreateElement("name");
name.InnerText = "王五";//为节点添加文本值
newStudent.AppendChild(name);
XmlElement age = xml.CreateElement("age");
age.InnerText = "19";
newStudent.AppendChild(age);
XmlElement gender = xml.CreateElement("gender");
gender.InnerText = "男";
newStudent.AppendChild(gender);
xml.DocumentElement.AppendChild(newStudent);//将新节点添加到文档中
//修改id为1的学生节点的属性值
XmlNode studentToUpdate = xml.SelectSingleNode("//student[@id='1']");
((XmlElement)studentToUpdate).SetAttribute("id", "11");
//修改名为张三的学生节点的年龄
XmlNode studentToUpdate2 = xml.SelectSingleNode("//student[name='张三']");
XmlNode ageToUpdate = studentToUpdate2.SelectSingleNode("age");
ageToUpdate.InnerText = "20";
//保存修改后的XML文件
xml.Save("students.xml");
}
}
}
以上是C#操作XML文件的实例汇总,通过以上示例可以学习如何使用C#操作XML文件,并且可以根据自己的需求对XML文件进行修改和处理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#操作XML文件实例汇总 - Python技术站