我有一个下载JSON提要的iOS应用程序。除了剩下的一个元素(即图像)之外,我已经成功地解析了所有的东西。
我正在下载的JSON提要是从一个PHP脚本在线上下载的,它将某些RSS提要转换为JSON。因此,为什么在包含图像的JSON的一个元素中存在HTML图像标记。
我使用下面的代码来访问诸如标题、日期、链接URLS等内容.而且效果很好:
NSArray *titles = [[[[data_dict objectForKey:@"rss"] valueForKey:@"channel"] valueForKey:@"item"] valueForKey:@"title"];正如您从上面的代码中看到的,标题存储在名为"title“的JSON标记中。很容易解析。图像存储在一个名为"description“的标签中。
这个标签还包含文本和图像URLS。那么,如何从它解析<img src>标记呢?
下面是一个JSON描述标记:

如何解析数组中的图像链接?
谢谢你抽出时间,丹
发布于 2015-05-26 09:36:45
请试试下面的代码-
NSString *yourHTMLSourceCodeString = @"";
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(<img\\s[\\s\\S]*?src\\s*?=\\s*?['\"](.*?)['\"][\\s\\S]*?>)+?"
options:NSRegularExpressionCaseInsensitive
error:&error];
[regex enumerateMatchesInString:yourHTMLSourceCodeString
options:0
range:NSMakeRange(0, [yourHTMLSourceCodeString length])
usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
NSString *img = [yourHTMLSourceCodeString substringWithRange:[result rangeAtIndex:2]];
NSURL *candidateURL = [NSURL URLWithString:img];
if (candidateURL && candidateURL.scheme && candidateURL.host)
{
NSLog(@"img src %@",img);
}
}];更新也可以使用下面的regex更改来完成-
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(<img\\s[\\s\\S]*?src\\s*?=\\s*?['\"]((http|https)://.*?)['\"][\\s\\S]*?>)+?"
options:NSRegularExpressionCaseInsensitive
error:&error];https://stackoverflow.com/questions/30454588
复制相似问题