我正在尝试从 html 页面获取 href 值
NSURL *url = [[searchBar.text stringByReplacingOccurrencesofString:@" " withString:@"+"]];
NSString *html = [NSString stringWithContentOfURL:url encoding:NSASCIIStringEncoding error:&error
NSLog(@"Html = %@",html);
到目前为止,到目前为止,在从 youtube 获取 html 并显示搜索结果第一页的 html 方面,它运行良好。
我尝试做的下一件事是删除一些我不需要的不需要的 HTML 标记,例如 ,,, 等。我想要留下的只是标记和它们的值或数据。
所以我尝试使用 NSScanner 和 Regex。但我似乎无法得到想要的结果。我现在正在尝试的代码是
NSScanner *scanner = [NSScanner scannerWithString:self];
[scanner setCharactersToBeSkipped:nil];
NSMutableSet *tags = [[NSMutableSet alloc] init];
NSString *tag;
do {
tag = nil;
[scanner scanUpToString:@"<" intoString:NULL];
[scanner scanUpToString:@">" intoString:&tag];
if (tag) {
NSString *t = [[NSString alloc] initWithFormat:@"%@>", tag];
[tags addObject:t];
}
} while (![scanner isAtEnd]);
NSMutableString *result = [[NSMutableString alloc] initWithString:self];
NSString *finalString;
NSString *replacement;
for (NSString *t in tags) {
replacement = @" ";
if ([t isEqualToString:@"<a>"] ||
[t isEqualToString:@"</a>"] ||
[t isEqualToString:@"<span>"] ||
[t isEqualToString:@"</span>"] ||
[t isEqualToString:@"<strong>"] ||
[t isEqualToString:@"</strong>"] ||
[t isEqualToString:@"<em>"] ||
[t isEqualToString:@"</em>"]||
[t isEqualToString:@"<script>"]||
[t isEqualToString:@"</script>"])
{
replacement = @"";
}
[result replaceOccurrencesOfString:t withString:replacement options:NSLiteralSearch MakeRange(0, result.length)];
}
finalString = [result stringByRemovingNewLinesAndWhitespace];
将格式化的 HTML 文本字符串转换为 NSString 部分 这是我引用的地方。但是我仍然无法让它按照我需要的方式工作。我在同一个问题上被困了很多天,请帮助我。任何关于我应该如何去做的建议也会有很大帮助。谢谢进步。