使用联合从RSS源获取图像
本文关键字:获取 图像 RSS | 更新日期: 2023-09-27 18:30:10
我正在构建一个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;
});
}
RSS规范中没有提供表示正在处理的<item>
的奇异图像。如果您想要一个图像,可以尝试解析<content>
元素,并从元素内容中提取一个或多个图像。
要从源中获取图像链接,您需要解析文本以获得文本中所有<img>
标记的匹配。你可以试着用几种方法来做到这一点。您可以尝试对img标记进行RegEx匹配,也可以尝试将文本加载到XML文档中并对其进行解析。问题是,它不是完整的HTML,因此您可能需要对其进行一些修改(例如,如果内容还没有被<p>
标记包围,则可能必须在内容周围放置一组封闭的标记。