回答
你可以这样做:
XmlDocument doc = new XmlDocument();
doc.LoadXml(@"<xml>myxml</xml>");
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment;filename=MyXmlDocument.xml");
Response.AddHeader("Content-Length", doc.OuterXml.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.Write(doc.OuterXml);
你会想看看编写一个自定义HTTP处理程序(实现IHttpHandler
的类),并将其注册到web.config中。请参阅this article on MSDN以了解如何设置一个示例。
下面是一个基本示例,说明如何执行一个返回XmlDocument
的标记。
using System.Web;
public class MyXmlDocumentHandler : IHttpHandler
{
public static XmlDocument XmlDoc
{
get;
set;
}
public MyXmlDocumentHandler()
{
}
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/xml"; // Set the MIME type.
XmlDoc.WriteTo(context.Response.OutputStream); // Write the XML markup to the respone stream.
}
public bool IsReusable
{
// To enable pooling, return true here.
// This keeps the handler in memory.
get { return false; }
}
}
这是怎么了:
xmldoc.Save(Response.OutputStream)
不要忘记设置响应MIME类型和其他相关属性,这样客户端浏览器将它理解为一个文件的下载。
不同于什么Noldorin贴你没有创建一个自定义HTTP处理程序。
如果要下载由XmlDocument类创建的XML文档,您可以始终将其直接保存到流中,并将其内容类型设置为text/xml
。
或多或少类似下面的代码:
XmlDocument xmldoc = new XmlDocument();
/*
* ... more code ...
*/
this.Response.ContentType = "text/xml";
xmldoc.Save(this.Response.OutputStream);
您不必注册自定义处理程序,但是我发现创建一个.ashx文件(+代码隐藏)可以轻松地编写适当的XML。我更喜欢使用一个可能期望创建HTML的普通页面。 – 2009-05-21 11:34:57
你需要回应它的请求,将文档保存到响应。当然,你需要能够得到XmlDocument
以某种方式 - 如果你已经在一个请求中创建它(例如对于一个页面),你需要能够根据缓存的参数重新创建它它在会议(与所有正常的注意事项)。
对于你可能会做写出来,内正常Page
的例子:
xmldoc.Save(Response.OutputStream);
或
xmldoc.Save(Response.Output);
您可以轻松创建一个ashx的文件和相关的代码隐藏(新“通用处理程序”项目),然后在实现IHttpHandler
实施ProcessRequest
的代码后面:
public void ProcessRequest(HttpContext context)
{
XmlDocument doc = ...;
doc.Save(context.Response.OutputStream);
}
您可能还需要设置适当的内容类型(可能是“text/xml”,除非它是您希望以不同方式解释的特定XML格式)等。如果您希望客户端默认保存它,则您应该设置一个内容配置。
- 1. 我怎样才能下载使用C++
- 2. 我怎样才能通过值的文件通过结构
- 3. 我怎样才能下载数据通过ajax jquery获取文件?
- 4. 我怎样才能从通过DatagramSocket的
- 5. 我怎样才能通过随机
- 6. 我怎样才能通过零
- 7. 我怎样才能通过Java
- 8. 我怎样才能通过CGLIB
- 9. 我怎样才能通过JavaScript函数
- 10. 我怎样才能从WSDL通过BEPL
- 11. 我怎样才能通过代码
- 12. 我怎样才能创建一个UIImageView
- 13. 我怎样才能创建三个tabels
- 14. 我怎样才能动态创建checboxa
- 15. 我怎样才能在ruby中下载两个json文件
- 16. 我怎样才能用Zend_Http_Client或其他库下载文件
- 17. Lua Love2D - 我怎样才能让它下载一个文件?
- 18. TableLayout创建时间过长。我怎样才能使它高效?
- 19. 我怎样才能保存excel文件在下载文件夹使用asp.netnet#
- 20. 怎样才能通过使用组由
- 21. 我怎样才能让我的HTML控件通过引导
- 22. 我怎样才能的application.ini文件
- 23. 我怎样才能加载我的pdf文件从SD卡
- 24. 我怎样才能使PHP
- 25. 我怎样才能提供一个gzipped的xml文件下载使用PHP
- 26. 我怎样才能使这个代码下载从URL的文件数组
- 27. 我怎样才能看到sdf文件
- 28. 我怎样才能打开FLP文件?
- 29. 我怎样才能从PSD文件
- 30. 我怎样才能
这是最简单的一个。 – Vikas 2009-05-22 04:45:18