答案:使用DataSet.ReadXml()可直接加载XML数据,自动创建表并填充行。示例中XML的Person元素转为表,ID、Name、Age为列,两行数据被加载。支持同名子元素作为行,子节点作字段,可推断类型或读取内联XSD。需确保文件路径正确、结构一致,避免嵌套过深。

在C#中,可以很方便地从XML文件加载数据到DataSet。只要XML文件结构清晰,符合基本的表格格式(有行、列信息),DataSet.ReadXml() 方法就能自动解析并填充数据。
使用 ReadXml() 从XML加载数据
DataSet 提供了 ReadXml() 方法,可以直接读取XML文件内容,并将其映射为表和行。以下是一个完整示例:
DataSet dataSet = new DataSet();
dataSet.ReadXml("data.xml"); // 指定XML文件路径
执行后,DataSet会根据XML结构自动创建DataTable,并填充数据。例如,如果有如下XML文件:
1 张三 25 2 李四 30
加载后,DataSet中会自动生成一个名为 Person 的表,包含 ID、Name、Age 三列,以及两行数据。
支持的XML格式说明
DataSet能识别多种XML结构,但推荐使用带有架构信息或标准行结构的格式:
- XML根节点下包含多个同名元素(视为行)
- 每个元素的子节点作为字段列
- 也可包含内联XSD schema,DataSet会据此创建强类型列
如果XML没有schema,DataSet会尝试推断数据类型(通常默认为字符串,部分数值可被识别)。
常见操作建议
- 确保XML文件路径正确,避免
FileNotFoundException - 可先用
File.Exists()判断文件是否存在 - 若XML结构复杂或嵌套太深,建议手动解析或使用
XmlReader - 加载后可通过
dataSet.Tables[0]访问具体表
基本上就这些。只要XML格式规范,用ReadXml()加载到DataSet非常简单直接。不复杂但容易忽略的是结构匹配问题——确保每条记录标签一致,字段命名清晰。基本上就这些。










