首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在NSArray中编辑解析的URL

在NSArray中编辑解析的URL
EN

Stack Overflow用户
提问于 2012-01-08 08:55:27
回答 3查看 225关注 0票数 1

我正在开发一个应用程序,其中一个页面显示了一个网站博客……我已经将所有内容解析成数组,加载到UITableView中。理想情况下,我想在TableView cells...however中显示YouTube视频的缩略图,解析后的代码只包含视频的嵌入代码……

Soo....the的问题是,我如何才能获得如下内容:

代码语言:javascript
运行
复制
http://www.youtube.com/v/videoID?version=3&feature=player_detailpage

并将其更改为:

代码语言:javascript
运行
复制
http://img.youtube.com/vi/videoID/1.jpg

或者可能是一种只解析videoID以加载到具有正确周围URL的字符串的方法?类似于:

代码语言:javascript
运行
复制
search:@"//embed/[onlytakethevideoID]"

提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-08 10:18:22

从URL中提取一个子串是一种脆弱的方法,因为Google可以随时改变他们的URL方案。

相反,请考虑创建一个NSURL对象并从中获取pathComponents数组。该路径包含您的视频ID,可用于构建新的URL:

代码语言:javascript
运行
复制
NSURL *myURL = [NSURL URLWithString:@"http://www.youtube.com/v/videoID?version=3&feature=player_detailpage"];
NSArray *myURLPathComps = [myURL pathComponents];
NSString *myVideoID = [myURLPathComps objectAtIndex:[myURLPathComps count]-1];
NSURL *myNewURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://img.youtube.com/vi/%@/1.jpg", myVideoID]];

我想你会发现这是不太可能打破的。Google可以改变他们的URL主机、方案等,但只要视频ID在路径的相同部分,你就应该没问题。

票数 1
EN

Stack Overflow用户

发布于 2012-01-08 09:25:59

看起来您要问的是如何提取videoID。我不知道YouTube的url方案,但如果它像你上面发布的那样,你可以从字符串中提取26到(26 + lengthOfVideoID)个字符,然后构造一个新的字符串,如下所示:

代码语言:javascript
运行
复制
NSRange   videoIDRange = { 26, 26 + kVideoIDLength };
NSString* videoID = [youTubeLink substringWithRange:videoIDRange];
NSString* newURL = [NSString stringWithFormat:@"http://img.youtube.com/vi/%@/1.jpg", videoID];

这就是你要找的吗?

票数 0
EN

Stack Overflow用户

发布于 2012-01-08 13:47:52

VideoID字符串可以作为对单个XPath表达式求值的结果获得

代码语言:javascript
运行
复制
substring-before(substring-after($theUrl, 'http://www.youtube.com/v/'),
                 '?'
                 )

其中$theUrl应替换为实际的Url。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8774494

复制
相关文章

相似问题

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