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パーツに変換します 。これは私が参照した場所です。しかし、それでも私はそれを必要な方法で動作させることができません。私は同じ問題で何日も立ち往生しています、私を助けてください。私がそれをどのように行うべきかについてのアドバイスも大いに役立ちます。ありがとう前進。