【问题标题】:XML string to DataTable in C#XML字符串到C#中的DataTable
【发布时间】:2011-12-09 17:46:42
【问题描述】:

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

我尝试了以下代码:

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;
}

它返回一个空的DataTable。

【问题讨论】:

    标签: c# .net xml datatable


    【解决方案1】:
    public DataTable stam()    
    {
        StringReader theReader = new StringReader(xmlData);
        DataSet theDataSet = new DataSet();
        theDataSet.ReadXml(theReader);
    
        return theDataSet.Tables[0];
    }
    

    您可以使用StringReader 将其加载到DataSet。从那里开始,第一个索引的表将包含DataTable

    【讨论】:

    • 漫长的搜索终于找到了你的答案!谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多