无法将数据导出到XML格式在ASP.NET中 - 数据导出为HTML而不是XML

11 浏览
0 Comments

无法将数据导出到XML格式在ASP.NET中 - 数据导出为HTML而不是XML

我想从我的ASP.NET web form应用程序中导出一些数据到一个可下载的XML文件,但是我无法将它显示为一个XML文件。它将信息输出为一个HTML文档而不是XML。

protected void ExportXMLButton_Click(object sender, EventArgs e)

{

using (MemoryStream stream = new MemoryStream())

{

// 创建一个XML文档。将我们的特定值写入文档中。

XmlTextWriter xmlWriter = new XmlTextWriter(stream, System.Text.Encoding.ASCII);

// 写入XML文档头部。

xmlWriter.WriteStartDocument();

// 写入我们的第一个XML头部。

xmlWriter.WriteStartElement("WebApplications");

// 写入表示单个web应用程序对象的元素。

xmlWriter.WriteStartElement("WebApplication");

// 写入我们的web应用程序对象的子元素数据。

xmlWriter.WriteElementString("Date", DateTime.Now.ToString());

xmlWriter.WriteElementString("Programmer", "Label1.Text");

xmlWriter.WriteElementString("Name", "Sample name ");

xmlWriter.WriteElementString("Language", "C# ");

xmlWriter.WriteElementString("Status", "Done");

// 结束元素WebApplication

xmlWriter.WriteEndElement();

// 结束文档WebApplications

xmlWriter.WriteEndElement();

// 通过写入任何所需的关闭标记来完成XML文档。

xmlWriter.WriteEndDocument();

// 为了安全起见,将文档刷新到内存流中。

xmlWriter.Flush();

// 将内存流转换为字节数组。

byte[] byteArray = stream.ToArray();

// 将XML文件发送给web浏览器进行下载。

Response.Clear();

Response.AppendHeader("Content-Disposition", "filename=MyExportedFile.xml");

Response.AppendHeader("Content-Length", byteArray.Length.ToString());

Response.ContentType = "application/octet-stream";

Response.BinaryWrite(byteArray);

xmlWriter.Close();

}

}

我期望的输出是一个XML文件,但实际输出是我的数据作为文本显示在屏幕上。

0
0 Comments

无法将数据导出到XML,而是导出到HTML的问题是由于删除了以下代码导致的:

Response.AppendHeader("Content-Length", byteArray.Length.ToString());

解决方法是将上述代码恢复到原来的位置。

0