dataTabel 读取XML数据问题 我用的是VS2005,你的那个好像在VS2008中才有的吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 xml转化为DataTablehttp://www.cnblogs.com/voiow/archive/2007/10/26/938860.html public class XmlToData { /// <summary> /// 将Xml内容字符串转换成DataSet对象 /// </summary> /// <param name="xmlStr">Xml内容字符串</param> /// <returns>DataSet对象</returns> public static DataSet CXmlToDataSet(string xmlStr) { if (!string.IsNullOrEmpty(xmlStr)) { StringReader StrStream = null; XmlTextReader Xmlrdr = null; try { DataSet ds = new DataSet(); //读取字符串中的信息 StrStream = new StringReader(xmlStr); //获取StrStream中的数据 Xmlrdr = new XmlTextReader(StrStream); //ds获取Xmlrdr中的数据 ds.ReadXml(Xmlrdr); return ds; } catch (Exception e) { throw e; } finally { //释放资源 if (Xmlrdr != null) { Xmlrdr.Close(); StrStream.Close(); StrStream.Dispose(); } } } else { return null; } } /// <summary> /// 将Xml字符串转换成DataTable对象 /// </summary> /// <param name="xmlStr">Xml字符串</param> /// <param name="tableIndex">Table表索引</param> /// <returns>DataTable对象</returns> public static DataTable CXmlToDatatTable(string xmlStr, int tableIndex) { return CXmlToDataSet(xmlStr).Tables[tableIndex]; } /// <summary> /// 将Xml字符串转换成DataTable对象 /// </summary> /// <param name="xmlStr">Xml字符串</param> /// <returns>DataTable对象</returns> public static DataTable CXmlToDatatTable(string xmlStr) { return CXmlToDataSet(xmlStr).Tables[0]; } /// <summary>/// 将xml转换为datatable/// </summary>/// <param name="path">xml的路径</param>private DataTable xmlToDataTable(string path){ XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(path); XmlNodeList rows = xmldoc.GetElementsByTagName("row"); DataTable dt = new DataTable("dt"); for (int i = 0; i < rows.Count; i++) { DataRow datarow = null; XmlNodeList columns = rows[i].ChildNodes; //在第一次循环时创建出列头 for (int k = 0; k < columns.Count && i == 0; k++) { string columnName = rows[i].ChildNodes[k].Attributes["name"].Value; DataColumn datacolumn = dt.Columns.Add(columnName, typeof(string)); } datarow = dt.NewRow(); //循环给行填充数据 for (int j = 0; j < columns.Count; j++) { datarow[rows[i].ChildNodes[j].Attributes["name"].Value] = columns[j].FirstChild.Value; } dt.Rows.Add(datarow); } return dt;} 搂主的XML结构和之前的一个XML结构一摸一样,建议搂主看看我回的下面贴子:http://topic.csdn.net/u/20081203/14/1daf422c-0266-4812-8364-eaa10000ee2b.html C/S 和 B/S 之间如何进行通信? .NET Reflector 7.0 问题 C#已保存完成的窗体、代码、功能消失,如何恢复? 树形计算的问题 C# 子窗体向主窗体的控件传值问题! udp接收信息为什么没反应呢?一直处于等待状态... 24时制与12时制转换问题? 求救???只有这么多分了 如何终止线程 c#不安装客户端连接oracle数据库 关于C# Winform的一些问题请教 无法将类型“System.Data.IDataAdapter”转换为“System.Data.OleDb.OleDbParameter”
http://www.cnblogs.com/voiow/archive/2007/10/26/938860.html
public class XmlToData
{
/// <summary>
/// 将Xml内容字符串转换成DataSet对象
/// </summary>
/// <param name="xmlStr">Xml内容字符串</param>
/// <returns>DataSet对象</returns>
public static DataSet CXmlToDataSet(string xmlStr)
{
if (!string.IsNullOrEmpty(xmlStr))
{
StringReader StrStream = null;
XmlTextReader Xmlrdr = null;
try
{
DataSet ds = new DataSet();
//读取字符串中的信息
StrStream = new StringReader(xmlStr);
//获取StrStream中的数据
Xmlrdr = new XmlTextReader(StrStream);
//ds获取Xmlrdr中的数据
ds.ReadXml(Xmlrdr);
return ds;
}
catch (Exception e)
{
throw e;
}
finally
{
//释放资源
if (Xmlrdr != null)
{
Xmlrdr.Close();
StrStream.Close();
StrStream.Dispose();
}
}
}
else
{
return null;
}
}
/// <summary>
/// 将Xml字符串转换成DataTable对象
/// </summary>
/// <param name="xmlStr">Xml字符串</param>
/// <param name="tableIndex">Table表索引</param>
/// <returns>DataTable对象</returns>
public static DataTable CXmlToDatatTable(string xmlStr, int tableIndex)
{
return CXmlToDataSet(xmlStr).Tables[tableIndex];
} /// <summary>
/// 将Xml字符串转换成DataTable对象
/// </summary>
/// <param name="xmlStr">Xml字符串</param>
/// <returns>DataTable对象</returns>
public static DataTable CXmlToDatatTable(string xmlStr)
{
return CXmlToDataSet(xmlStr).Tables[0];
}
/// 将xml转换为datatable
/// </summary>
/// <param name="path">xml的路径</param>
private DataTable xmlToDataTable(string path)
{
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(path);
XmlNodeList rows = xmldoc.GetElementsByTagName("row"); DataTable dt = new DataTable("dt");
for (int i = 0; i < rows.Count; i++)
{
DataRow datarow = null;
XmlNodeList columns = rows[i].ChildNodes;
//在第一次循环时创建出列头
for (int k = 0; k < columns.Count && i == 0; k++)
{
string columnName = rows[i].ChildNodes[k].Attributes["name"].Value;
DataColumn datacolumn = dt.Columns.Add(columnName, typeof(string));
}
datarow = dt.NewRow();
//循环给行填充数据
for (int j = 0; j < columns.Count; j++)
{
datarow[rows[i].ChildNodes[j].Attributes["name"].Value] = columns[j].FirstChild.Value;
}
dt.Rows.Add(datarow);
}
return dt;
}
http://topic.csdn.net/u/20081203/14/1daf422c-0266-4812-8364-eaa10000ee2b.html