2013-03-26 7 views
0

UIWebView에서 각 페이지의 첫 번째 단락을 가져와야합니다. 이것을 어떻게 얻을 수 있습니까?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)"]; 

답변

0

이 작업을 수행하는 가장 강력한 방법의 컨텍스트에서 일부 자바 스크립트 코드를 실행하는 것입니다 문서에서 첫 번째 단락 요소를 찾고 해당 텍스트를 반환하는 웹보기. UIWebViewstringByEvaluatingJavaScriptFromString 메소드를 사용하면됩니다.

아래 코드는 태그 이름이 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 ... 
} 

문서의 다른 측면을 검사하거나 변경하려면 웹보기의 컨텍스트에서 임의의 javascript 코드를 실행할 수 있습니다.

관련 문제