2013-04-10 33 views
2

我這裏有加載RSS XML錯誤:找不到名稱空間名爲''的元素'channel'。

var stream = e.Result; 
var response = XmlReader.Create(stream); 
var feeds = SyndicationFeed.Load(response); // IT IS HERE 

異常異常

元素 '通道' 與命名空間名稱 '' 沒有被發現。 8號線, 位置2

RSS看起來像:

<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"> 
<atom:link href="http://dallas.example.com/rss.xml" rel="self" 
type="application/rss+xml" /> <channel> <title>News</title> 
<link>http://www.samsung.com/us</link> <description>News</description> 
... 

http://validator.w3.org/feed/說: 「這是一個有效的RSS源。」 (你可以在這裏http://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fwww.samsung.com%2Fus%2Ffunction%2Frss%2FrssFeedItemList.do%3FctgryCd%3D101%26typeCd%3DNEWS檢查)

所以我不知道發生了什麼... :(

我們能否解決方法,以抑制一些SyndicationFeed class

驗證消息的謝謝你的任何解決方案,這將使我有機會忘掉這個異常

回答

3

如果你從你列出的W3驗證的結果,它讀取:

line 8, column 0: Undocumented use of atom:link 

channel元素之前放置的atom:link元素導致SyndicationFeed類在加載時失敗。您可以通過本地下載rss feed xml來進行測試,刪除/註釋atom:link行並再次運行您的代碼。沒有這一行,找到xml加載和提要。這有happened beforeSyndicationFeed類。

+0

謝謝!你知道關於'atom:link'的規範是怎麼說的嗎?它應該在那裏嗎? – 2013-04-10 02:50:52

+2

儘管W3驗證認爲feed是有效的,但SyndicationFeed.Load()方法有點脆弱,並且期望'atom:link'標籤位於其他地方,比如「channel」的子元素元件。您可以查看[Atom](http://tools.ietf.org/html/rfc4287)和[RSS](http://cyber.law.harvard.edu/rss/rss.html)規範瞭解更多詳情元素放置。 – Michael 2013-04-10 03:05:04

+2

另外...檢查RSS顧問委員會的'atom:link'部分[推薦](http://www.rssboard.org/rss-profile#namespace-elements-atom-link),你會看到一個可接受的位置在'channel'內。 – Michael 2013-04-10 03:17:23

相關問題