使用联合发布从RSS源获取图像?

时间:2012-04-06 14:45:57

标签: c# regex image windows-phone-7 rss

我正在构建Windows Phone应用并使用SyndicationFeed来阅读RSS源。如何从Feed中获取图片?

我是否需要转换器(?),但我不知道会发生什么。我看到有一个ImageUrl属性,我尝试将其用于使用但没有快乐。 :(

图片需要按类别和Feed(预定义)进行过滤。我知道如何过滤饲料(慷慨的论坛成员帮助:)) 只是得到图像就是问题。

我正在使用MSDN示例作为背景:http://msdn.microsoft.com/en-us/library/hh487167(v=vs.92).aspx

我的Feed:http://www.zimo.co/feed/


我会使用此正则表达式从Feed中获取图像:

Regex rg = new Regex(@"<img.*?src=""(.*?)""", RegexOptions.IgnoreCase);

但问题是如何实现它。所以我同时得到了饲料和图片:(

这是我使用的代码:

private void UpdateFeedList(string feedXML)
    {
        StringReader stringReader = new StringReader(feedXML);
        XmlReader xmlReader = XmlReader.Create(stringReader);
        SyndicationFeed feed = SyndicationFeed.Load(xmlReader);


Regex rg = new Regex(@"<img.*?src=""(.*?)""", RegexOptions.IgnoreCase);


        Deployment.Current.Dispatcher.BeginInvoke(() =>
        {

ls_text.ItemsSource = feed.Items;


        });
    }

1 个答案:

答案 0 :(得分:0)

RSS规范中没有提供表示正在处理的<item>的单个图像。如果您想拥有一个图像,可以尝试解析<content>元素并从元素内容中提取一个或多个图像。

要将图片链接从源中删除,您需要解析文本以获得文本中所有<img>标记的匹配。您可以尝试以两种方式执行此操作。您可以尝试对img标记执行RegEx匹配,或者您可以尝试将文本加载到XML文档中并对其进行解析。问题是,它不是完整的HTML,因此您可能需要对其进行一些修改(例如,您可能必须在内容周围放置一组封闭的标记,如果内容尚未包含由<p>标记括起来。