使用Objective-C将HTML文本转换为纯文本

我有很大的NSString与HTML文本里面。此字符串的长度多达3.500.000个字符。我如何将这个HTML文本转换成NSString与纯文本里面。我正在使用扫描仪,但它的工作太慢了。任何想法 ?
最佳答案
这取决于您所定位的iOS版本。由于iOS7有一种内置的方法,它不仅可以剥离HTML标签,还可以将格式设置为字符串:

Objective-C的

[[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUTF8StringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]} documentAttributes:nil error:nil];

迅速

let attributedString = try NSAttributedString(data: htmlString.dataUsingEncoding(NSUTF8StringEncoding)!,
                                              options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],
                                              documentAttributes: nil)

如果你只需要删除<和> (脏的方式!!!),这可能是有问题的,如果你有这些字符在字符串,使用这个:

- (NSString *)stringByStrippingHTML {
   NSRange r;
   NSString *s = [[self copy] autorelease];
   while ((r = [s rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
     s = [s stringByReplacingCharactersInRange:r withString:@""];
   return s;
}

转载注明原文:使用Objective-C将HTML文本转换为纯文本 - 代码日志