[英]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);
“THIS IS A TEXT”行正確顯示在 UIWebView 中。 有誰知道是否可以將那行文本(或更多)提取到 NSString 或其他一些可訪問的容器中?
我知道有:
NSString *html = [webview stringByEvaluatingJavaScriptFromString: @"document.documentElement.outerHTML"];
但這(顯然)在這里不起作用。 有任何想法嗎 ? 我基本上是在嘗試(假)將 rtf 文件轉換為 iOS 上的 NSString。 謝謝!
事實證明document.documentElement.innerText
是要走的路。 立即為我獲取純文本。
我們可以直接使用下面的代碼從 UIWebView 中獲取文本內容,而不是從 UIWebView 獲取 html,並再次付出額外的努力將 html 轉換為純文本:
NSString *plainText = [webView stringByEvaluatingJavaScriptFromString:@"document.body.textContent"];
它可以節省您將 html 轉換為純文本的額外工作。
實際上,我過去不得不做類似的事情。 也許不是最優雅的,但這是對我有用的:
我會將文件中的文本加載到 HTML 頁面中(您可以使用 UIWebView 中的 javascript 執行此操作,或者您可以通過 Objective-C 創建一個使用 stringByEvaluatingJavaScriptFromString 調用的 javascript 方法來執行此操作)。 然后,您可以運行上面概述的方法調用,這應該可以正常工作,或者您可以在 Javascript 中創建一個自定義方法來捕獲文本並將其返回給 Objective-C 代碼。 在這里,它被存儲為一個字符串並准備好了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.