1

好的,我有一个现有的应用程序,我目前正在为其进行更新。我想要做的是当客户端更新他们的网站时,应用程序将从特定页面中提取文本并在 UITextView 中显示文本?我正在尝试这种方法,除了它包含 NavBar 的文本之外它工作正常吗?那么如何仅获取文本而不获取 NavBar?

   textView.text = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerText"];
4

2 回答 2

1

好吧,从我看到的角度来看,您有两个选择。如果您知道导航栏中的文本有多长并且字符长度相同,请使用:

NSString *webString = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerText"];
int length = amount of characters to remove from beginning of string;
webString = [webString substringFromIndex:length];

如果您不知道要删除的数量,可以使用 NSScanner,它有点复杂但更灵活。

NSString *webString = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerText"];
NSScanner *stringScanner = [NSScanner scannerWithString:webString];
NSString *content = [[NSString alloc] init];
while ([stringScanner isAtEnd] == NO) {

[stringScanner scanUpToString:@"Start of the text you want" intoString:null];
[stringScanner scanUpToString:@"End of the text you want" intoString:&content];
}

希望这会有所帮助:D

于 2012-09-12T20:41:00.663 回答
0

这是我尝试使用的代码

NSString *webString = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerText"];
NSScanner *stringScanner = [NSScanner scannerWithString:webString];
NSString *content = [[NSString alloc] init];
while ([stringScanner isAtEnd] == NO) {

    [stringScanner scanUpToString:@"Andalee" intoString:NULL];
    [stringScanner scanUpToString:@"Eastern Sun Dance Company Rehearsal Mondays 7:00pm @ Cal Arts Academy" intoString:&content];
    textView.text = webString; }

也许我接近它是错误的。这是我试图从http://andalee.com/andalee/CLASSES.html中提取的网页

于 2012-09-12T21:10:06.443 回答