答案是使用DataSet.ReadXml或XDocument解析XML并绑定到DataGridView。首先通过DataSet读取XML文件并绑定Tables[0],或手动创建DataTable,利用XDocument遍历Person节点,提取Name、Age、City字段添加到行中,最后将DataTable设为DataSource,注意处理路径、异常及结构兼容性问题。

在C#中将XML数据显示在DataGridView中是一个常见的需求,尤其在处理配置文件或数据交换时。实现这一功能的关键是读取XML数据并将其转换为适合绑定的数据源,比如DataTable。下面介绍具体步骤和示例代码。
读取XML数据并加载到DataTable
要将XML数据显示在DataGridView中,最简单的方法是使用DataSet来读取XML文件,然后将其包含的表绑定到DataGridView。
假设你有一个名为data.xml的文件,内容如下:
你可以使用以下代码将该XML加载到DataGridView中:
DataSet ds = new DataSet();ds.ReadXml("data.xml");
dataGridView1.DataSource = ds.Tables[0]; // 假设只有一个表
手动创建DataTable并解析XML(更灵活)
如果你需要对XML结构进行更多控制,可以手动创建DataTable,并使用XmlDocument或XDocument逐行读取数据。
示例:使用XDocument解析XML并填充DataTable
DataTable dt = new DataTable();dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Age", typeof(int));
dt.Columns.Add("City", typeof(string));
XDocument doc = XDocument.Load("data.xml");
var persons = doc.Descendants("Person");
foreach (var person in persons)
{
dt.Rows.Add(
person.Element("Name")?.Value,
int.Parse(person.Element("Age")?.Value),
person.Element("City")?.Value
);
}
dataGridView1.DataSource = dt;
注意事项与建议
确保XML文件路径正确,推荐使用绝对路径或Application.StartupPath定位文件位置。
- 如果XML结构复杂(嵌套多层),考虑先扁平化数据再绑定。
- 使用try-catch处理可能的异常,如文件不存在或类型转换错误。
- 调用ReadXml()时,XML必须符合schema规则,否则可能导致加载失败。
- 若XML无根节点,需确保其结构能被DataSet正确识别。
基本上就这些。只要把XML数据成功加载进DataTable或BindingSource,绑定到DataGridView就非常直接。关键是让数据结构清晰、字段匹配,显示自然就顺利了。









