我正在尝试从html页面删除文本,我正在使用此代码:
NSRange *r;
while ((r = [commentsOnly rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound) {
commentsOnly = [commentsOnly stringByReplacingCharactersInRange:r withString:@""];
NSLog(@"clearing");
}
它完美地删除了html标签,但是如何只删除一个标签?例如,title
或p
。我不想只删除我的标签。我想删除开始代码(<p>
),两个代码之间的信息以及关闭代码(<\p>
)。
答案 0 :(得分:0)
如果我理解你的问题,可能会对你有所帮助:
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);
}
}
答案 1 :(得分:0)
使用stringByEvaluatingJavaScriptFromString:
在UIWebView
内执行JavaScript来执行此操作。这项工作要少得多,而且更可靠,因为它将使用WebKit的HTML解析器而不是天真的字符串替换。