Удаление частей со страницы HTML в UIWebVIew - PullRequest
0 голосов
/ 29 сентября 2011

Я пытаюсь удалить текст со страницы html и использую этот код:

NSRange *r;
while ((r = [commentsOnly rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound) {
        commentsOnly = [commentsOnly stringByReplacingCharactersInRange:r withString:@""];
        NSLog(@"clearing");
    }

Отлично удаляет HTML-теги, но как удалить только один тег? Например, title или p. Я не хочу удалять только мой тег. Я хочу удалить начальный тег (<p>), информацию между двумя тегами и закрыть тег (<\p>).

Ответы [ 2 ]

0 голосов
/ 29 сентября 2011

Используйте stringByEvaluatingJavaScriptFromString: для выполнения JavaScript в UIWebView, чтобы сделать это.Это гораздо менее трудоемкий процесс и гораздо более надежный, так как он использует HTML-анализатор WebKit вместо простой замены строк.

0 голосов
/ 29 сентября 2011

Если я понимаю ваш вопрос, может быть, это вам поможет:

NSString *string = @"</body>", *htmlString = @"ddsfsdf_<body>_sdfsfd_<body>ffff</body></body>";
NSRange range = [htmlString rangeOfString:string];
if (range.location != NSNotFound)
{
    range.length += range.location;
    range.location = 0;

    string = @"<body>";
    NSRange rangeOpen = [htmlString rangeOfString:string options:NSBackwardsSearch range:range];
    if (rangeOpen.location != NSNotFound)
    {
        range.length -= rangeOpen.location;
        range.location = rangeOpen.location;
        htmlString = [htmlString stringByReplacingCharactersInRange:range withString:@""];
        NSLog(@"%@", htmlString);
    }
}
...