SyndicationFeed RSS:找不到具有命名空间名称的元素'channel'



我试图以数据源为RSS(XML格式)加载,但是当我尝试将其加载到联合feed时,会引起错误:

找不到

元素'频道'带有名称名称'。第1行,位置21。

这是我的代码:

public IEnumerable<FeedItem> GetRssFeedList()
{
    XmlReader reader = XmlReader.Create(_urlRssFeed);
    SyndicationFeed feed = SyndicationFeed.Load(reader);
    var feedItems = feed.Items.Select(c=> new FeedItem { Title = c.Title.Text, Link = c.Links.FirstOrDefault().ToString(), Description = c.Summary.Text});
    return feedItems;
}

_urlrssfeed =" http://www.educaweb.com/rss/actualidad/"

我检查了它是否是有效的RSS,它是:http://validator.w3.org/feed/check.cgi?url=http:///WW.educaweb.com/rss/rss/actualidad/

我不知道会是什么?预先感谢。

顺便说一句,这是我的自定义提要项目:

public class FeedItem
{
    public string Title { get; set; }
    public string Link { get; set; }
    public string Description { get; set; }
}

希望可以帮助我!谢谢!

<meta name="robots" .../>

标签可能是原因。这是我为HuffingtonPost(https://www.huffingtonpost.com/dept/entertainment/feed)解决的方法。

private static Stream RemoveInvalidRssText(Stream stream)
{
    var text = new StreamReader(stream).ReadToEnd(); // convert stream to string
    text = Regex.Replace(text, "<meta name="robots" content="noindex" xmlns="http://www.w3.org/1999/xhtml" />", "");
    return new MemoryStream(Encoding.UTF8.GetBytes(text)); // convert to string to stream
}

,但不再在HuffingtonPost或问题中提到的提要上遇到这个问题。也许这些提要升级到了较新的RSS规格

显然,我正在使用的工作将增加处理时间以将流转换为字符串,剥离问题文本,然后将其转换回流。因此,您需要将此步骤限制在有问题的供稿中。

最新更新