C# 格式化要在ASP.NET页面上显示的XML

C# 格式化要在ASP.NET页面上显示的XML,c#,.net,asp.net,sql-server,xml,C#,.net,Asp.net,Sql Server,Xml,我在sqlserver中有一个表,在该表中有一个包含xml文件的列。我正在gridview中显示该表。当我们单击按钮时,我想以xml格式显示特定的xml文件列,或者导出为xml文件格式 缓存或重新检索原始XML,如果这样对应用程序更有利的话。然后,您只需将一个URL输出到一个新窗口,该URL可以从缓存或数据库检索XML,并以XML的形式显示给用户。要实现这一点,需要将响应类型更改为XML。如果这没有意义,您需要了解一些响应头和可能的MIME类型 dtbl.WriteXml(Server.MapP

我在sqlserver中有一个表,在该表中有一个包含xml文件的列。我正在gridview中显示该表。当我们单击按钮时,我想以xml格式显示特定的xml文件列,或者导出为xml文件格式

缓存或重新检索原始XML,如果这样对应用程序更有利的话。然后,您只需将一个URL输出到一个新窗口,该URL可以从缓存或数据库检索XML,并以XML的形式显示给用户。要实现这一点,需要将响应类型更改为XML。如果这没有意义,您需要了解一些响应头和可能的MIME类型

dtbl.WriteXml(Server.MapPath("~/yourSample.xml"));
也可能是这样

String xml = dtbl.Rows[0]["XMLColumnName"].ToString();
string filename = System.Web.HttpContext.Current.Server.MapPath("~/yourSample.xml");
XmlDocument xmlDoc = new XmlDocument();
XmlTextWriter xmlWriter = new XmlTextWriter(filename, System.Text.Encoding.UTF8);
xmlWriter.Formatting = Formatting.Indented;
xmlWriter.WriteProcessingInstruction("xml", "version='1.0' encoding='UTF-8'");
xmlWriter.WriteRaw(xml);
xmlWriter.Flush();
xmlWriter.Close();

HTTPHandler将生成xml文件并返回给用户,将xml写入具有正确内容类型头的响应,例如:

            HttpContext.Current.Response.ClearHeaders();
            HttpContext.Current.Response.AppendHeader("Content-Length", dataLength.ToString());
        HttpContext.Current.Response.AppendHeader("Content-Transfer-Encoding", "binary");
        HttpContext.Current.Response.AppendHeader("Accept-Ranges", "bytes");
        if (dataLength > -1)
            HttpContext.Current.Response.AppendHeader("Accept-Header", dataLength.ToString());
        HttpContext.Current.Response.AppendHeader("Content-Disposition", string.Format("Attachment;Filename=\"{0}\"", fileName));
        HttpContext.Current.Response.ContentType = contentType;

        HttpContext.Current.Response.ClearContent();

然后将XML内容分块写入响应。

也许您想编写一个HttpHandler来生成XML文件并将其返回给用户,以便用户可以下载?