怎样读取XML到DataTable

时间:2021-03-04 12:04:01
怎样读取XML到DataTable?得到的DataTable是要绑定到DataGridView的呢。。。

有没有实例可以参考???

12 个解决方案

#1


如果xml结构没有问题的话,载入到DataSet中。

DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable("table1");
dataTable.Columns.Add("col1", typeof(string));
dataSet.Tables.Add(dataTable);

string xmlData = "<XmlDS><table1><col1>Value1</col1></table1><table1><col1>Value2</col1></table1></XmlDS>";

System.IO.StringReader xmlSR = new System.IO.StringReader(xmlData);

dataSet.ReadXml(xmlSR, XmlReadMode.IgnoreSchema);


参考
在 DataSet 中使用 XML
http://msdn.microsoft.com/zh-cn/library/84sxtbxh(v=vs.80).aspx

#2


public void BindDataList()
    {
        DataSet ds = new DataSet();
        ds.ReadXml(Server.MapPath("Softs.xml"));

        

 

        DataTable dt = new DataTable();
        dt.Columns.Add("name", typeof(string));
        dt.Columns.Add("pic", typeof(string));
        dt.Columns.Add("Memo", typeof(string));
        dt.Columns.Add("Url", typeof(string));

        /////还可以采用下面的任一方法,推荐/////

         dt = ds.Tables[0].Clone();//copy the structure of ds.Table[0];

        dt = ds.Tables[0].Copy();//copy the structure and datas of ds.Table[0];


         //////////////////////////////////////////////////
        
        DataRow[] Rows = ds.Tables[0].Select("Type='App'");

        DataRow dr;

        foreach (DataRow row in Rows)
        {
            dr = dt.NewRow();
            dr["pic"] = row[0].ToString();
            dr["Url"] = row[1].ToString(); 
            dr["Memo"] = row[2].ToString();

                ...........
            dt.Rows.Add(dr);

        }


      //  DataList1.DataSource = ds.Tables[0].DefaultView;

        DataList1.DataSource = dt.DefaultView;
         //ds.Tables[0].Select("Type='Application'").;
        DataList1.DataBind(); 
    
    }

另给两个例子链接
http://www.xueit.com/asp.net/show-5191-2.aspx
http://www.chinaz.com/program/2009/1216/101289.shtml

#3


这的方法太多了啊。网上找找,

#4


补个,有没有封装好的方法???

#5


Mark

#6


直接这样使用:

 DataTable table=new DataTable();
 table.ReadXml(xmlFile);
 dataGridView1.DataSource=table;

#7


引用 6 楼 sdl2005lyx 的回复:
直接这样使用:

 DataTable table=new DataTable();
 table.ReadXml(xmlFile);
 dataGridView1.DataSource=table;


只是这样吗?

#8


补个,先学习了 怎样读取XML到DataTable

#9


这样好了。

#10


#11


直接readXML就可以啊

#12


该回复于2011-10-31 11:28:10被版主删除

#1


如果xml结构没有问题的话,载入到DataSet中。

DataSet dataSet = new DataSet();
DataTable dataTable = new DataTable("table1");
dataTable.Columns.Add("col1", typeof(string));
dataSet.Tables.Add(dataTable);

string xmlData = "<XmlDS><table1><col1>Value1</col1></table1><table1><col1>Value2</col1></table1></XmlDS>";

System.IO.StringReader xmlSR = new System.IO.StringReader(xmlData);

dataSet.ReadXml(xmlSR, XmlReadMode.IgnoreSchema);


参考
在 DataSet 中使用 XML
http://msdn.microsoft.com/zh-cn/library/84sxtbxh(v=vs.80).aspx

#2


public void BindDataList()
    {
        DataSet ds = new DataSet();
        ds.ReadXml(Server.MapPath("Softs.xml"));

        

 

        DataTable dt = new DataTable();
        dt.Columns.Add("name", typeof(string));
        dt.Columns.Add("pic", typeof(string));
        dt.Columns.Add("Memo", typeof(string));
        dt.Columns.Add("Url", typeof(string));

        /////还可以采用下面的任一方法,推荐/////

         dt = ds.Tables[0].Clone();//copy the structure of ds.Table[0];

        dt = ds.Tables[0].Copy();//copy the structure and datas of ds.Table[0];


         //////////////////////////////////////////////////
        
        DataRow[] Rows = ds.Tables[0].Select("Type='App'");

        DataRow dr;

        foreach (DataRow row in Rows)
        {
            dr = dt.NewRow();
            dr["pic"] = row[0].ToString();
            dr["Url"] = row[1].ToString(); 
            dr["Memo"] = row[2].ToString();

                ...........
            dt.Rows.Add(dr);

        }


      //  DataList1.DataSource = ds.Tables[0].DefaultView;

        DataList1.DataSource = dt.DefaultView;
         //ds.Tables[0].Select("Type='Application'").;
        DataList1.DataBind(); 
    
    }

另给两个例子链接
http://www.xueit.com/asp.net/show-5191-2.aspx
http://www.chinaz.com/program/2009/1216/101289.shtml

#3


这的方法太多了啊。网上找找,

#4


补个,有没有封装好的方法???

#5


Mark

#6


直接这样使用:

 DataTable table=new DataTable();
 table.ReadXml(xmlFile);
 dataGridView1.DataSource=table;

#7


引用 6 楼 sdl2005lyx 的回复:
直接这样使用:

 DataTable table=new DataTable();
 table.ReadXml(xmlFile);
 dataGridView1.DataSource=table;


只是这样吗?

#8


补个,先学习了 怎样读取XML到DataTable

#9


这样好了。

#10


#11


直接readXML就可以啊

#12


该回复于2011-10-31 11:28:10被版主删除