簡體   English   中英

C#SyndicationFeed-RSS解析日期問題

[英]C# SyndicationFeed - RSS parsing date issue

我正在使用SyndicationFeed從不同的RSS來源中檢索一些數據。 但是,在嘗試讀取RSS時遇到了一個問題,據我所知,RSS具有與正常工作相同的元素和數據。

SyndicationFeed feed = SyndicationFeed.Load(XmlReader.Create("http://rsslink"));

例如,此RSS可以正常工作並且被接受且沒有錯誤: http : //kjellochklortanten.libsyn.com/rss

盡管此RSS: http : //feeds.feedburner.com/tedtalks_audio導致SyndicationFeed引發錯誤(這是從瑞典語翻譯過來的):

解析XML中的DateTime值時發生錯誤

我已經查看了兩個提要中的日期,據我所知它們是相同的。

那里有任何線索的C#忍者可能導致此錯誤的原因是什么?

提前致謝!

出現此問題的原因是第二個提要中使用了日期格式。 SyndicationFeed.Load方法期望接收標准格式的提要。 以下是標准格式的示例:

2009年10月5日,星期一08:00:06 GMT

但是,提要中的lastBuildDate為:

2014年5月2日,星期五04:58:16 UTC

要變通解決此問題,創建一個可識別該格式的自定義XML讀取器。 復制MyXmlReader的整個代碼並替換

const string CustomUtcDateTimeFormat = "ddd MMM dd HH:mm:ss Z yyyy";  

通過

const string CustomUtcDateTimeFormat = "ddd, dd MMM yyyy HH:mm:ss 'UTC'";

現在將其用作

//var feed = SyndicationFeed.Load(XmlReader.Create("http://feeds.feedburner.com/tedtalks_audio"));
XmlReader r = new MyXmlReader("http://feeds.feedburner.com/tedtalks_audio"); 
var feed = SyndicationFeed.Load(r);

該代碼將適用於兩個提要。

Hej DA

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM