2013-10-07 157 views
2

您好我有這樣的代碼,其中我正在從Excel表讀取數據並將其存儲在數據集中,並顯示輸出,現在我想保存從ds.GetXm()方法以.XML格式(如:與Output.xml)將數據集對象保存爲XML

daAdapter = new OleDbDataAdapter("Select * FROM [Sheet1$]", connection); 
System.Data.DataTable dt=new System.Data.DataTable("ChildElement"); 
//daAdapter.FillSchema(dt, SchemaType.Source); 
daAdapter.Fill(dt); 
DataSet ds = new DataSet("RootElement"); 
ds.Tables.Add(dt); 
Console.WriteLine(ds.GetXml()); 
Console.Read(); 

回答

2

所以,你要保存的字符串到光盤 - 使用StreamWriter類:

using System.IO; 

.... 

string xmlString = ds.GetXml(); 
string path = "Output.xml"; 
using(StreamWriter writer = new StreamWriter(path); 
{ 
    writer.Write(xmlString); 
} 

或者,如果你不需要字符串變量,並希望考慮使用Krazibit312建議的DataSet.WriteXml方法更有效。從docs

的getXML返回XML作爲一個字符串,因此需要更多的開銷比 中WriteXML編寫的XML文件。

2

超級簡單的方法:

System.IO.File.WriteAllText(@"c:\temp\myfile.xml", ds.GetXml()); 

從MSDN:

創建一個新文件,指定的字符串寫入文件,然後關閉該文件。如果目標文件已經存在,它將被覆蓋。

http://msdn.microsoft.com/en-us/library/ms143375.aspx

1

需要用戶StreamWriter對象

 using System.IO; 

    .... 
    // Get a StreamWriter object 
    StreamWriter xmlDoc = new StreamWriter(Server.MapPath("~/FileTest/Testdo.xml"), false); 

    // Apply the WriteXml method to write an XML document 
    ds.WriteXml(xmlDoc); 
    xmlDoc.Close();