C# 如何将xml文件内容加载到DataTable

来源:这里教程网 时间:2026-02-21 17:29:04 作者:

在C#中,可以使用

DataSet
类来将XML文件内容加载到
DataTable
中。XML文件需要有明确的结构(包含行和列定义),才能正确映射为
DataTable

步骤说明

1. 确保XML结构合法且包含表结构信息
XML文件应包含表名、列名和数据行。例如:

<?xml version="1.0" encoding="utf-8"?>

  
    张三
    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()
是最简单直接的方式。

相关推荐