C#读取XML文件

首先添加头文件using System.Xml;

然后,主要是几个步骤:

  1. 创建 XML 文档操作对象;
  2. 加载 XML 文档到文档对象中;
  3. 获取 XML 文档根目录;
  4. 遍历匹配节点信息,将对象信息放置 list 集合中。

Student.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace XMLOperateSelfExercise
{
class Student
{
public string StuName { get; set; }
public int StuAge { get; set; }
public string Gender { get; set; }
public string ClassName { get; set; }
}
}

Form1.cs:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

// 添加操作 XML 的头文件
using System.Xml;

namespace XMLOperateSelfExercise
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.dataGridView1.RowHeadersVisible = false;
}

// 加载XML文件
private void btnLoadXML_Click(object sender, EventArgs e)
{
// [1] 创建 XML 文档操作对象
XmlDocument objDoc = new XmlDocument();
// [2] 加载 XML 文档到文档对象中
objDoc.Load(@"./stuInfo.xml");
// [3] 获取 XML 文档根目录
XmlNode rootNode = objDoc.DocumentElement;
List<Student> stuNodeInfo = new List<Student>();// 创建集合对象,用来存放对象信息

foreach (XmlNode item in rootNode.ChildNodes) {
if (item.Name == "Student") {
Student objStu = new Student();
foreach (XmlNode stuInnerNode in item) {
switch (stuInnerNode.Name) {
case "StuName":
objStu.StuName = stuInnerNode.InnerText;
break;
case "StuAge":
objStu.StuAge = Convert.ToInt32(stuInnerNode.InnerText);
break;
case "Gender":
objStu.Gender = stuInnerNode.InnerText;
break;
case "ClassName":
objStu.ClassName = stuInnerNode.InnerText;
break;
}
}
stuNodeInfo.Add(objStu);
}
}

this.dataGridView1.DataSource = stuNodeInfo;
}

// 加载版本信息
private void btnVersion_Click(object sender, EventArgs e)
{
// 创建 XML 读取器
XmlTextReader xmlTReader = new XmlTextReader(@"./StuInfo.xml");

string versionInfo = string.Empty;

// 循环查询
while(xmlTReader.Read()) {
if (xmlTReader.Name == "Version") {
versionInfo = "版本:" + xmlTReader.GetAttribute("vNo") + "发布时间:" + xmlTReader.GetAttribute("pTime");
break;
}
}
MessageBox.Show(versionInfo, "版本信息");
}
}
}

StuInfo.xml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?xml version="1.0" encoding="utf-8" ?>
<Students>
<Student>
<StuName>令狐冲</StuName>
<StuAge>19</StuAge>
<Gender></Gender>
<ClassName>1班</ClassName>
</Student>
<Student>
<StuName>岳灵珊</StuName>
<StuAge>16</StuAge>
<Gender></Gender>
<ClassName>2班</ClassName>
</Student>
<Student>
<StuName>岳不群</StuName>
<StuAge>40</StuAge>
<Gender></Gender>
<ClassName>3班</ClassName>
</Student>
<Student>
<StuName>乔峰</StuName>
<StuAge>23</StuAge>
<Gender></Gender>
<ClassName>4班</ClassName>
</Student>
<Student>
<StuName>韦小宝</StuName>
<StuAge>20</StuAge>
<Gender></Gender>
<ClassName>5班</ClassName>
</Student>
<DataInfo>
<Version vNo="1.2" pTime="2018-10-22">数据版本信息</Version>
</DataInfo>
</Students>

输出效果:

xml读取

感谢支持!