2012-06-29 52 views
0

我有要求保存顯示在HTML頁面中的XML文檔。如何從html頁面保存xml文件

這種情況是這樣的:我發送搜索請求到服務器,並作爲回報我得到的XML文件,但顯示在HTML頁面。我想要的是使用javascript,asp.net(C#)將客戶端保存在HTML表單內部顯示的xml文件中。

請參閱此鏈接(好像是這個服務器返回的文件) http://www.w3schools.com/dom/books.xml

+0

請確認您是否需要在客戶端保存XML文件 - 客戶端從瀏覽器訪問您的應用程序。不建議依靠瀏覽器內的文件系統訪問。瀏覽器環境應該是沙盒,保護操作系統資源免受潛在威脅。根據安全級別,瀏覽器可能不允許通過JavaScript保存文件。 –

+0

如果我找到你了,xml內容是在

元素內,對嗎? –

回答

0

發送的文件應具有指示它的意思是保存在HTTP標頭,未顯示。 這樣來做:

context.Response.ContentType = "application/force-download"; 
0

假設你正在編寫一個客戶端應用程序消耗這個文件

using System.Net; 
new WebClient().DownloadFile("http://www.w3schools.com/dom/books.xml", @"c:\books.xml"); 
0

正如Rutesh說你不能用JavaScript去。用C#.NET將它保存在服務器上,然後從服務器訪問它。其次,你所說的頁面不是一個html頁面,而是一個xml文件。我希望你知道如何建立一個asp.net頁面,如果是的話使用這個:

XmlDocument xdoc = new XmlDocument(); 
    xdoc.Load("http://www.w3schools.com/dom/books.xml"); 
    xdoc.Save("myfilename.xml"); 

快樂的編碼!

+0

是Ashwin singh我知道如何構建asp.net頁面,我所說的頁面是xml [通過查看源代碼],但只是爲了詳細說明我已經使用了html頁面。 – user1012461

+0

我的意思是沒有進攻.... :) –

0
sourceResponse.ContentType = "application/octet-stream"; 
byte[] responseContent = "XML File content" 
sourceResponse.AddHeader("content-disposition", String.Format("attachment; filename={0}.xml", "yourFileName")); 
sourceResponse.BinaryWrite(responseContent); 
sourceResponse.End(); 
+0

你可以給OP多一點上下文應該去哪裏? – StormeHawke