在C#中,可以使用
DataSet类来将XML文件内容加载到
DataTable中。XML文件需要有明确的结构(包含行和列定义),才能正确映射为
DataTable。
步骤说明
1. 确保XML结构合法且包含表结构信息
XML文件应包含表名、列名和数据行。例如:
25
30
2. 使用DataSet.ReadXml()方法读取XML并获取DataTable
代码示例:
using System;using System.Data;
class Program
{
static void Main()
{
DataSet ds = new DataSet();
ds.ReadXml("data.xml"); // 替换为你的XML文件路径
// 获取第一个表(根据XML中的根元素或节点组)
DataTable dt = ds.Tables[0];
// 遍历数据测试
foreach (DataRow row in dt.Rows)
{
Console.WriteLine($"Name: {row["Name"]}, Age: {row["Age"]}");
}
}
}
注意事项
• 如果XML没有明确的表格结构,
ReadXml()可能无法正确生成表。
• 可以通过
ds.Tables["TableName"]按名称访问特定表。
• 若XML包含多个同级元素组,会自动生成多个表。
补充:手动创建DataTable并读取简单XML
对于结构不标准的XML,可结合
System.Xml.XmlDocument解析后手动填充
DataTable。 DataTable dt = new DataTable();
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Age", typeof(int));
XmlDocument doc = new XmlDocument();
doc.Load("data.xml");
foreach (XmlNode node in doc.SelectNodes("//Users"))
{
dt.Rows.Add(
node["Name"]?.InnerText,
int.Parse(node["Age"]?.InnerText)
);
}
基本上就这些。只要XML格式规范,用
DataSet.ReadXml()是最简单直接的方式。
