Как преобразовать разметку HTML NSString в обычный текст NSString?
Был поиск в сети для примера того, как преобразовать разметку HTML-строки в обычный текст.
Я получаю свою информацию из фида, который содержит HTML
, затем я отображаю эту информацию в текстовом представлении. имеет ли свойство UITextView
преобразование HTML
или мне нужно сделать это в коде. Я пробовал:
NSString *str = [NSString stringWithCString:self.fullText encoding:NSUTF8StringEndcoding];
но, похоже, не работает. У кого-нибудь есть идеи?
Ответы
Ответ 1
Вы можете сделать это, проанализировав html с помощью класса NSScanner
- (NSString *)flattenHTML:(NSString *)html {
NSScanner *theScanner;
NSString *text = nil;
theScanner = [NSScanner scannerWithString:html];
while ([theScanner isAtEnd] == NO) {
[theScanner scanUpToString:@"<" intoString:NULL] ;
[theScanner scanUpToString:@">" intoString:&text] ;
html = [html stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"%@>", text] withString:@""];
}
//
html = [html stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
return html;
}
Надеюсь, что это поможет.
Ответ 2
Если вы используете UIWebView, вам будет проще анализировать HTML-текст:
fullArticle = [webView stringByEvaluatingJavaScriptFromString:@"document.body.getElementsByTagName('article')[0].innerText;"]; // extract the contents by tag
fullArticle = [webView stringByEvaluatingJavaScriptFromString:@"document.body.innerText"]; // extract text inside body part of HTML
Ответ 3
вы не можете сделать это прямо, я думаю.. однако вы можете использовать NSXML Parser и проанализировать HTML и получить именно то, что вы хотите...
Ответ 4
Если вам нужно представить текст в режиме только для чтения, почему бы не использовать UIWebView?