HTML解析:如何从远程站点链接标签(HTML parsing: how to get link t

2019-10-31 16:15发布

我有一个网站(例如apple.com )包含链接的标签,例如

<link rel="alternate" type="application/rss+xml" title="RSS" href="http://images.apple.com/main/rss/hotnews/hotnews.rss" />

那么,如何可以从中获得称号“RSS”和HREF?

更新1:我试图用现场转换成字符串

NSData *data = [NSURLConnection sendSynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://apple.com/"]] returningResponse:NULL error:NULL];
NSString *HTMLWithFeeds = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

但我不知道做什么了吧?

更新2:

这是不是从我的职务清楚,但除了在应该找到类型为“应用程序/ RSS + XML”此站点链接

Answer 1:

你可以尝试使用正则表达式

NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<link.*?href="(.*?)".*?>"
                                                                           options:NSRegularExpressionCaseInsensitive
                                                                             error:&error];

NSArray *matches = [regex matchesInString:string
                                  options:0
                                    range:NSMakeRange(0, [string length])];
for (NSTextCheckingResult *match in matches) {
     NSRange matchRange = [match range];
     NSRange firstHalfRange = [match rangeAtIndex:1];
     NSRange secondHalfRange = [match rangeAtIndex:2];
}

苹果文档有关于如何进一步使用和访问比赛的一些例子:

https://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html

例如,类似下面的正则表达式中的HREFs应该做的:

<link.*?href="(.*?)".*?>


Answer 2:

如果你使用jQuery,$( “链接”)ATTR( “标题”) - >打印“RSS” $( “链接”)ATTR( “HREF”) - >打印的http:// *

如果你想获得在href内容,使用jQuery阿贾克斯。 $获得( “HTTP:// *”,功能(结果){});



Answer 3:

创建NSXMLDocument使用-initWithContentsOfURL:options:error:NSXMLDocumentTidyHTML选项。 然后,您可以导航开始节点的层次-rootElement 。 或者,您可以使用XPath,像[doc nodesForXPath:@"//link@title"]



文章来源: HTML parsing: how to get link tag from remote site