Подтвердить что ты не робот

Как преобразовать разметку HTML NSString в обычный текст NSString?

Был поиск в сети для примера того, как преобразовать разметку HTML-строки в обычный текст.

Я получаю свою информацию из фида, который содержит HTML, затем я отображаю эту информацию в текстовом представлении. имеет ли свойство UITextView преобразование HTML или мне нужно сделать это в коде. Я пробовал:

NSString *str = [NSString stringWithCString:self.fullText encoding:NSUTF8StringEndcoding];

но, похоже, не работает. У кого-нибудь есть идеи?

4b9b3361

Ответ 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?