将数据集对象保存为 XML

本文关键字:XML 保存 对象 数据集 | 更新日期: 2023-09-27 18:34:09

嗨,我

有这段代码,其中正在从存储在数据集中的 Excel 工作表中读取并显示输出,现在我想保存我从 DS 获得的任何内容。.XML格式的 GetXm() 方法。(例如:输出.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();

将数据集对象保存为 XML

超级简单的方法:

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

从 MSDN:

创建一个新文件,将指定的字符串写入该文件,然后关闭该文件。如果目标文件已存在,则会覆盖该文件。

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

所以你想把一个字符串保存到光盘 - 使用 StreamWriter 类:

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

或者,如果您不需要字符串变量并希望提高效率,请考虑使用 Krazibit312 建议的 DataSet.WriteXml 方法。从文档中:

GetXml 以字符串形式返回 XML,因此需要更多的开销 比 WriteXml 将 XML 写入文件。

你需要用户 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();
//simply 
ds.WriteXML("FileName");