0

私のアプリには、詳細ビューを含むテーブル ビューがあります。詳細ビューはHEREからブログ投稿を読み込み、詳細ビューにはその投稿のテキストが表示されます。ほとんど機能していますが、テキストを修正する方法を理解する必要があります (以下の例)。詳細ビューでウェブサイトからテキストを取得するために必要なコードは次のとおりです。

-(void)viewDidLoad {
                                          //self.url is from the table view where the link to the website is
    NSURL *myURL = [NSURL URLWithString: [self.url stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
    NSURLRequest *request = [NSURLRequest requestWithURL:myURL]; 
    [self.webView loadRequest:request];

    timer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(LoadText) userInfo:nil repeats:YES];

}

-(void)webViewDidLoadText {

    NSString *textForBlog = [self.webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByClassName('paragraph')[0].innerHTML;"];

    self.textView.text = textForBlog;

}

ここに画像の説明を入力

4

1 に答える 1

1

コードを例として使用すると、次のように実装できます。

-(void)webViewDidLoadText {

    NSString *textForBlog = [self.webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByClassName('paragraph')[0].innerHTML;"];

    // Add this step for stripping the HTML from the text you received
    NSString *strippedTextForBlog = [self stringByStrippingHTMLFromString:textForBlog];

    self.textView.text = strippedTextForBlog;

}

// Taken from: http://stackoverflow.com/questions/6170531/strip-out-html-tags-etc-from-nsstring/6171866#6171866
- (NSString *)stringByStrippingHTMLFromString:(NSString *)str
{
    NSMutableString *html = [NSMutableString stringWithCapacity:[str length]];

    NSScanner *scanner = [NSScanner scannerWithString:str];
    scanner.charactersToBeSkipped = NULL;
    NSString *tempText = nil;

    while (![scanner isAtEnd])
    {
        [scanner scanUpToString:@"<" intoString:&tempText];

        if (tempText != nil)
            [html appendString:tempText];

        [scanner scanUpToString:@">" intoString:NULL];

        if (![scanner isAtEnd])
            [scanner setScanLocation:[scanner scanLocation] + 1];

        tempText = nil;
    }

    return html;
}
于 2013-10-15T01:06:57.997 に答える