首先使用DataSet.Readxml()方法将XML文件加载为DataTable,确保XML具有明确的表结构(如包含Users节点组),然后通过ds.Tables[0]或表名获取数据表,并遍历行输出字段值;若XML结构不规范,则需用XmlDocument解析并手动填充DataTable。

在C#中,可以使用DataSet类来将XML文件内容加载到DataTable中。XML文件需要有明确的结构(包含行和列定义),才能正确映射为DataTable。
步骤说明
1. 确保XML结构合法且包含表结构信息
XML文件应包含表名、列名和数据行。例如:
<?xml version=”1.0″ encoding=”utf-8″?>
<DocumentElement>
<Users>
<Name>张三</Name>
<Age>25</Age>
</Users>
<Users>
<Name>李四</Name>
<Age>30</Age>
</Users>
</DocumentElement>
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()是最简单直接的方式。


