2

我正在构建一个 Windows Phone 应用程序并使用SyndicationFeed它来阅读 RSS 提要。如何从提要中获取图片?

我需要一个转换器吗(?),但我不知道里面会有什么。我看到有一个ImageUrl属性,我尝试使用它,但没有任何乐趣。:(

图片需要按类别与提要(这是预定义的)一起过滤。我知道如何过滤提要(慷慨的论坛成员帮助:))只是获取图像是问题所在。

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

我的饲料:http ://www.zimo.co/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;


        });
    }
4

1 回答 1

0

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

要从源中获取图像链接,您需要解析文本以匹配文本中的所有<img>标签。您可以尝试通过几种方式来做到这一点。您可以尝试对 img 标记进行 RegEx 匹配,或者您可以尝试将文本加载到 XML 文档中并对其进行解析。问题是,它不是完整的 HTML,因此您可能需要对其进行一些修改(例如,如果内容尚未被标签包围,您可能<p>必须在内容周围放置一组封闭标签。

于 2012-04-09T12:50:58.557 回答