1

这是我的代码:

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

在 webPage 字符串中,我得到了链接的 html 页面。在那个字符串中有很多标签和文本。我只想获取没有任何标签的文本正文。

我想将该文本显示到我的 UITextView 中。我怎样才能做到这一点?

4

3 回答 3

1

这是最好的答案,正是您正在寻找的:

在 webView 委托方法中编写以下脚本。( UIWebviewdidfinishLoading)

NSString *myText = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent"];
于 2009-10-13T09:05:56.393 回答
0

更好的解决方案:

- (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

于 2010-06-25T16:12:16.130 回答
0

从我的尝试来看,做得最好。即使 NSSCanner 不是解决这个问题的更聪明的解决方案,如果 html/xml 格式正确,你应该没问题。

于 2010-03-31T10:33:27.527 回答