首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JSON - src>中解析<img src>标记

在JSON - src>中解析<img src>标记
EN

Stack Overflow用户
提问于 2015-05-26 09:25:09
回答 1查看 885关注 0票数 0

我有一个下载JSON提要的iOS应用程序。除了剩下的一个元素(即图像)之外,我已经成功地解析了所有的东西。

我正在下载的JSON提要是从一个PHP脚本在线上下载的,它将某些RSS提要转换为JSON。因此,为什么在包含图像的JSON的一个元素中存在HTML图像标记。

我使用下面的代码来访问诸如标题、日期、链接URLS等内容.而且效果很好:

代码语言:javascript
复制
NSArray *titles = [[[[data_dict objectForKey:@"rss"] valueForKey:@"channel"] valueForKey:@"item"] valueForKey:@"title"];

正如您从上面的代码中看到的,标题存储在名为"title“的JSON标记中。很容易解析。图像存储在一个名为"description“的标签中。

这个标签还包含文本和图像URLS。那么,如何从它解析<img src>标记呢?

下面是一个JSON描述标记:

如何解析数组中的图像链接?

谢谢你抽出时间,丹

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-26 09:36:45

请试试下面的代码-

代码语言:javascript
复制
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更改来完成-

代码语言:javascript
复制
 NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(<img\\s[\\s\\S]*?src\\s*?=\\s*?['\"]((http|https)://.*?)['\"][\\s\\S]*?>)+?"
                                                                           options:NSRegularExpressionCaseInsensitive
                                                                             error:&error];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30454588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档