Уберите HTML с веб-страницы на iPhone - PullRequest
1 голос
/ 05 июня 2009

Это мой код:

NSURL *url=[NSURL URLWithString:@"http://www.engadget.com"];
NSString *webPage=[[NSString alloc]initWithContentsOfURL:url
                          encoding:NSUTF8StringEncoding error:nil];

В строке webPage я получил html-страницу ссылки. В этой строке много тегов и текста. Я хочу взять только текст без каких-либо тегов.

Я хочу отобразить этот текст в моем UITextView. Как я могу это сделать?

Ответы [ 3 ]

1 голос
/ 13 октября 2009

Это лучший ответ и именно то, что вы ищете:

Напишите следующий скрипт в методе делегата webView. (UIWebviewdidfinishLoading)

NSString *myText = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent"];
0 голосов
/ 25 июня 2010

Лучшее решение:

- (NSString *)flattenHTML:(NSString *)html {

    NSScanner *theScanner;
    NSString *text = nil;

    theScanner = [NSScanner scannerWithString:html];

    while ([theScanner isAtEnd] == NO) {

        // find start of tag
        [theScanner scanUpToString:@"<" intoString:NULL] ; 

        // find end of tag
        [theScanner scanUpToString:@">" intoString:&text] ;

        // replace the found tag with a space
        //(you can filter multi-spaces out later if you wish)
        html = [html stringByReplacingOccurrencesOfString:
                           [ NSString stringWithFormat:@"%@>", text]
                     withString:@" "];

    } // while //

    return html;

}

Ссылка: http://rudis.net/content/2009/01/21/flatten-html-content-ie-strip-tags-cocoaobjective-c

0 голосов
/ 31 марта 2010

Из того, что я пытался, эта справилась лучше всего. Несмотря на то, что NSSCanner не является для этого более подходящим решением, если html / xml хорошо сформирован, у вас все будет хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...