簡體   English   中英

從 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);

“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM