【发布时间】:2015-10-08 18:04:31
【问题描述】:
我正在从基于 rss 提要的项目中获取数据。通过在谷歌上搜索,我发现通常在 HTML 源中以这种格式找到 RSS 链接。
<link rel="alternate" type="application/rss+xml" title="RSS Feed" href="http://feeds.abcnews.com/abcnews/topstories" />
所以,我必须使用 nsscanner 类从 HTML 源中找到 RSS 提要的链接。但我不知道正确的模式,我必须设置 scanUpToString: 和 haracterSetWithCharactersInString: 等等。
所以,请帮助我如何找到 RSS 提要的完整链接。
这是我的尝试:
- (void)viewDidLoad {
NSString *googleString = @"http://abcnews.go.com/";
NSURL *googleURL = [NSURL URLWithString:googleString];
NSError *error;
NSString *googlePage = [NSString stringWithContentsOfURL:googleURL encoding:NSASCIIStringEncoding
error:&error];
NSLog(@"%@",[self yourStringArrayWithHTMLSourceString:googlePage]);//will return NSMutableArray
}
-(NSMutableArray *)yourStringArrayWithHTMLSourceString:(NSString *)html
{
NSString *from = @"<a href=\"";
NSString *to = @"</a>";
NSMutableArray *array = [[NSMutableArray alloc]init];
NSScanner* scanner = [NSScanner scannerWithString:html];
[scanner scanUpToString:@"<link" intoString:nil];
if (![scanner isAtEnd]) {
NSString *url = nil;
[scanner scanUpToString:@"RSS Feed" intoString:nil];
NSCharacterSet *charset = [NSCharacterSet characterSetWithCharactersInString:@"/>"];
[scanner scanUpToCharactersFromSet:charset intoString:nil];
[scanner scanCharactersFromSet:charset intoString:nil];
[scanner scanUpToCharactersFromSet:charset intoString:&url];
NSLog(@"%@",url);
// "url" now contains the URL of the img
}
return array;
}
目前我只能找到此代码的链接。
输出:
但完整的链接是:-
http://feeds.abcnews.com/abcnews/topstories
【问题讨论】:
标签: ios objective-c xml-parsing rss nsscanner