从UIWebView中提取文本
extract text from UIWebView
我有一个加载了简单rtf文件的UIWebView。(包含一行"这是一个测试")
UIWebView* webview = [[UIWebView alloc] initWithFrame:CGRectMake(5, 50, 310, 400)];
[[self view] addSubview:webview];
[webview loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"test" ofType:@"rtf"]isDirectory:NO]]];
NSString *html = [webview stringByEvaluatingJavaScriptFromString: @"all"];
NSLog (@"html:%@", html.debugDescription);
"这是一个文本"行正确显示在UIWebView中。有谁知道是否有可能以某种方式将该行(或更多)文本提取到 NSString 或其他一些可访问的容器中?
我知道有:
NSString *html = [webview stringByEvaluatingJavaScriptFromString: @"document.documentElement.outerHTML"];
但这(显然)在这里不起作用。 有什么想法吗?我基本上是在尝试(假)将 rtf 文件转换为 iOS 上的 NSString。谢谢!
事实证明document.documentElement.innerText
是要走的路。立即给我纯文本。
与其从UIWebView获取html,并再次付出额外的努力将html转换为纯文本,我们可以直接使用以下代码从UIWebView获取文本内容:
NSString *plainText = [webView stringByEvaluatingJavaScriptFromString:@"document.body.textContent"];
它节省了将html转换为纯文本的额外工作。
我过去实际上不得不做类似的事情。也许不是最优雅的,但这是对我有用的:
我会将文本从文件加载到HTML页面(你可以从UIWebView内部使用javascript执行此操作,或者你可以从Objective-C创建一个javascript方法使用stringByEvaluatingJavaScriptFromString调用)。然后,您可以运行上面概述的方法调用,它应该可以正常工作,或者您可以在Javascript中创建一个自定义方法,该方法将捕获文本并将其返回到Objective-C代码。在这里,它存储为字符串并准备就绪。
相关文章:
- 使用 jQuery 从选择标签中抓取文本
- 使用 casperjs 抓取文本节点的最快方法
- 如何分析 XML 文件和抓取文本值
- 从 URL 中抓取文本和媒体
- jQuery文本提取方法不从HTML中提取文本
- 在Javascript中将字符串文本提取为常量是一种最佳实践吗
- 如何从URL中抓取文本并放置在JS数组中
- JS从文本框中抓取文本,传递给asp.net mvc ActionResult,但ActionResult参数显示为nu
- 通过功能和文本提取在web浏览器中突出显示
- 如何在事件onclick中抓取文本
- 将大括号内的所有文本提取到字符串数组中
- 如何从文本src抓取文本
- 从span标签中抓取文本
- jQuery迭代类元素,抓取文本,插入别处
- 从多个输入字段抓取文本
- 使用casperjs从灯箱中抓取文本
- 从文本字段抓取文本并用它更新数据库
- 如何使用thymeleaf抓取文本区域数据
- 调用一个网站,并使用javascript抓取文本
- 如何使用python从javascript生成的页面中抓取文本