回答
你可以這樣做:
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. 我怎樣才能從通過DatagramSocket的
- 4. 我怎樣才能通過Java
- 5. 我怎樣才能通過JavaScript函數
- 6. 我怎樣才能通過零
- 7. 我怎樣才能通過代碼
- 8. 我怎樣才能動態創建checboxa
- 9. Lua Love2D - 我怎樣才能讓它下載一個文件?
- 10. 我怎樣才能用Zend_Http_Client或其他庫下載文件
- 11. 我怎樣才能在ruby中下載兩個json文件
- 12. TableLayout創建時間過長。我怎樣才能使它高效?
- 13. 我怎樣才能保存excel文件在下載文件夾使用asp.netnet#
- 14. 怎樣才能通過使用組由
- 15. 我怎樣才能的application.ini文件
- 16. 我怎樣才能加載我的pdf文件從SD卡
- 17. 我怎樣才能提供一個gzipped的xml文件下載使用PHP
- 18. 我怎樣才能使PHP
- 19. 我怎樣才能看到sdf文件
- 20. 我怎樣才能從PSD文件
- 21. 我怎樣才能
- 22. 我怎樣才能使用logstash建立索引json文件?
- 23. 我怎樣才能通過這樣的字符串http.post angular2
- 24. 我怎樣才能爲styleBar的UINavigationBar創建自定義樣式?
- 25. 怎樣才能創建子文件夾[AppleScript的]
- 26. 我怎樣才能在web上下文XML文件
- 27. Webtest怎樣才能接受文件下載?
- 28. 我怎樣才能通過使用vb.net編碼將pdf文件轉換爲xls
- 29. 我怎樣才能加載從ObjectInputStream中
- 30. 我怎樣才能加載視圖
這是最簡單的一個。 – Vikas 2009-05-22 04:45:18