c#中的XML字符串到DataTable

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

我尝试了以下代码:

public DataTable stam() { string xmlData = "abcd"; 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。

 public DataTable stam() { StringReader theReader = new StringReader(xmlData); DataSet theDataSet = new DataSet(); theDataSet.ReadXml(theReader); return theDataSet.Tables[0]; } 

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