2013-05-28 239 views
0

我的代碼:加載XML文檔

XmlDocument xml1 = new XmlDocument(); 
     XmlDocument xml2 = new XmlDocument(); 
     xml1.Load("http://www.oztivo.net/xmltv/FMDRA_2013-05-31.xml.gz"); 
     xml2.Load("http://www.oztivo.net/xmltv/GEM-ACT_2013-05-16.xml.gz"); 

我的問題是,在首次一切網頁加載工作的偉大,但是,刷新它給我一個錯誤:

'', hexadecimal value 0x1F, is an invalid character. Line 1, position 1. 

有誰知道如何解決這個問題?

+2

您的URL用於gzip版本文件。您需要首先解壓縮...或從URL中刪除'.gz'部分。 –

+0

我應該如何解壓縮它? – samer

+0

@samer像這樣:http://www.dotnetperls.com/decompress – paul

回答

1

您可以使用HttpWebRequestAutomaticDecompression屬性自動解壓 'gziped' 文件:

HttpWebRequest request = HttpWebRequest.CreateHttp("http://www.oztivo.net/xmltv/FMDRA_2013-05-31.xml.gz"); 
request.AutomaticDecompression = DecompressionMethods.GZip; 

WebResponse response = request.GetResponse(); 

XmlDocument xml1 = new XmlDocument(); 
xml1.Load(response.GetResponseStream()); 

[更新]注:

事實上,測試您的網址時,我們可以看到,他們是'gziped'。如果您嘗試從網絡瀏覽器訪問網址,您將看到顯示的XML內容,因爲網絡瀏覽器會解壓縮內容。

[Update2] CreateHttp可從.NET 4或更高版本獲得。如果使用.NET,則可以使用(HttpWebRequest)WebRequest.Create而不使用.NET < .NET 4

+0

它給我一個CreateHttp的錯誤,因爲函數不存在 – samer

+0

'CreateHttp'可以從.NET 4或更高版本。您可以改用'(HttpWebRequest)WebRequest.Create'。 – polkduran