2

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

4 回答 4

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方法。文档

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

于 2013-10-07T13:01:21.030 回答
2

超级简单的方法:

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

来自 MSDN:

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

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

于 2013-10-07T13:02:42.917 回答
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();
于 2013-10-07T13:05:57.343 回答
1
//simply 
ds.WriteXML("FileName");
于 2013-10-07T14:20:10.610 回答