C#使用包含xml-stylesheet的rss feed?

时间:2010-06-29 05:54:59

标签: c# xml .net-3.5 rss

我在使用c#解析rss feed时遇到问题。 我曾经使用这种方法来加载Feed。 XDocument rssFeed = XDocument.Load(@url); 但是,当我注意到feed有一个xml-stylesheet时,这个方法崩溃说xml没有很好地格式化...... 这是包含此标记的RSS订阅源 http://www.channelnews.fr/accueil.feed?type=rss

使用c#解析任何RSS Feed的最佳方法是什么?

感谢您的帮助

2 个答案:

答案 0 :(得分:3)

此代码适用于我

    static XDocument DownloadPage()
    {
        var req = (HttpWebRequest)WebRequest.Create("http://www.channelnews.fr/accueil.feed?type=rss");
        req.UserAgent = "Mozilla";

        using(var response = req.GetResponse())
        using(var stream = response.GetResponseStream())
        using (var reader = new StreamReader(stream))
            return XDocument.Load(reader);
    }

注意,如果省略设置UserAgent,那么响应将包含字符串'DOS',它绝对不是xml:)

答案 1 :(得分:0)

这个更好用:

XDocument xdoc = XDocument.Load("http://pedroliska.wordpress.com/feed/");

var items = from i in xdoc.Descendants("item")
            select new
            {
                Title = i.Element("title").Value
            };

所以现在你可以通过循环或类似的方式访问rss标题:

items[0].Title

只是代码从rss提要中提取标题,你可以提取描述,链接,pubDate等。