0

我需要从UIWebView. 我怎样才能得到这个?

我还有一个用于正则表达式检测的代码,但它给出了段落类名称而不是段落内容:

NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(<p\\s[\\s\\S]*?=\\s*?['\"](.*?)['\"][\\s\\S]*?>)+?"
                             options:NSRegularExpressionCaseInsensitive
                             error:&error];

[regex enumerateMatchesInString:html
                        options:0
                        range:NSMakeRange(0, [html length])
                        usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {

    NSString *img = [html substringWithRange:[result rangeAtIndex:2]];
    NSLog(@"img src %@",img);
}];

NSString *classs=[webView stringByEvaluatingJavaScriptFromString:@"document.getElementbyClassName(img)"];
4

1 回答 1

0

最可靠的方法是在 Web 视图的上下文中执行一些 javascript 代码,该代码定位文档中的第一个段落元素并返回其文本。您可以使用UIWebView'stringByEvaluatingJavaScriptFromString方法执行此操作。

下面的代码首先检索文档中带有标记名称 P 的所有元素的数组(假设您要查找的文本在这些元素中,否则您将有更多工作要做)。然后它检查是否至少有一个段落元素,如果有,则返回其文本内容。否则,它返回空字符串。

- (void)webViewDidFinishLoad:(UIWebView *)_webView
{
    NSString *code = @"var paragraphs = document.getElementsByTagName('P');"
                      "paragraphs.length > 0 ? paragraphs[0].innerText : '';";
    NSString *text = [_webView stringByEvaluatingJavaScriptFromString: code];
    // ... do something with text ...
}

如果要检查或更改文档的其他方面,可以在 Web 视图的上下文中运行任意 javascript 代码。

于 2013-04-01T12:40:45.820 回答