我之前问过一个similar question,可能有些答案可以帮助你。 如果你需要完整的HTML解析器,只是想剥离HTML标记出来,一个NSString类可能是有用的(这个是mwaterfal修改类别):
- (NSString *)stringByStrippingTags {
// Find first & and short-cut if we can
NSUInteger ampIndex = [self rangeOfString:@"
if (ampIndex == NSNotFound) {
return [NSString stringWithString:self]; // return copy of string as no tags found
}
// Scan and find all tags
NSScanner *scanner = [NSScanner scannerWithString:self];
[scanner setCharactersToBeSkipped:nil];
NSMutableSet *tags = [[NSMutableSet alloc] init];
NSString *tag;
do {
// Scan up to <
tag = nil;
[scanner scanUpToString:@"
[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:@""] ||
[t isEqualToString:@""] ||
[t isEqualToString:@""] ||
[t isEqualToString:@""] ||
[t isEqualToString:@""] ||
[t isEqualToString:@""] ||
[t isEqualToString:@""] ||
[t isEqualToString:@""]) {
replacement = @"";
}
[result replaceOccurrencesOfString:t
withString:replacement
options:NSLiteralSearch
range:NSMakeRange(0, result.length)];
}
// Remove multi-spaces and line breaks
return = [result stringByRemovingNewLinesAndWhitespace];
}