XML 字符串到 C# 中的 DataTable [英] XML string to DataTable in C#

查看:20
本文介绍了XML 字符串到 C# 中的 DataTable的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在C#中将XML字符串转换为DataTable?

How to convert XML string to DataTable in C#?

我尝试了以下代码:

public DataTable stam()
{
    string xmlData = "<Names><Name>a</Name><Name>b</Name><Name>c</Name><Name>d</Name></Names>";

    XElement x = XElement.Parse(xmlData);

    DataTable dt = new DataTable();

    XElement setup = (from p in x.Descendants() select p).First();

    foreach (XElement xe in setup.Descendants()) // build your DataTable
        dt.Columns.Add(new DataColumn(xe.Name.ToString(), typeof(string))); // add columns to your dt

    var all = from p in x.Descendants(setup.Name.ToString()) select p;

    foreach (XElement xe in all)
    {
        DataRow dr = dt.NewRow();
        foreach (XElement xe2 in xe.Descendants())
            dr[xe2.Name.ToString()] = xe2.Value; //add in the values
        dt.Rows.Add(dr);
    }

    return dt;
}

它返回一个空的数据表.

and it returns an empty DataTable.

推荐答案

public DataTable stam()    
{
    StringReader theReader = new StringReader(xmlData);
    DataSet theDataSet = new DataSet();
    theDataSet.ReadXml(theReader);

    return theDataSet.Tables[0];
}

您可以使用 StringReader 将其加载到 DataSet 中.从那里,具有第一个索引的表将包含 DataTable.

You can use a StringReader to load it into a DataSet. From there, the table with the first index will contain the DataTable.

这篇关于XML 字符串到 C# 中的 DataTable的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆