做项目时可能需要一些网络接口的数据,然后用UIWebView加载HTML的资源,但不能让其存在链接,但是连接部分的字还需要保留.
提供一种思路:获取网络数据,用字符串截取的方式,将元数据进行分割,在逐条进行处理,去掉连接.最后将处理后的数据进行拼接得到完整的字符串.
//data为网络解析的数据
NSMutableDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NewsSecondModel *secondModel = [[NewsSecondModel alloc] init];
[secondModel setDataWithDic:dic];
secondCon.secondModel = secondModel;
NSString *comStr = secondModel.body;
NSLog(@"comStr>>>>>>>>%@",comStr);
NSArray *strArray = [comStr componentsSeparatedByString:@"\n"];
NSMutableArray *valueArray = [NSMutableArray arrayWithArray:strArray];
// NSLog(@"valueArraylast5 >>>%@",[valueArray objectAtIndex:valueArray.count- 7]);
NSMutableArray *finshArray = [NSMutableArray arrayWithCapacity:0];
//重新拼接字符串去除网页中的超链接
for (NSString *value in valueArray) {
NSRange headRange = [value rangeOfString:@"heading"];
NSRange zhiHu = [value rangeOfString:@"知乎专栏"];
if (headRange.location != NSNotFound || zhiHu.location != NSNotFound) {
}else{
//获取带有href字符串的字符串
NSRange subStr = [value rangeOfString:@"href"];
if (subStr.location != NSNotFound) {
//根据"<a"分割字符串
NSArray *comArr = [value componentsSeparatedByString:@"<a"];
// NSLog(@"comArr>>>%@",comArr);
for (NSString *comStr2 in comArr) {
// NSLog(@"%@",comStr2);
NSString *lastStr = @"";
//根据"\">"分割字符串
NSRange strRange2 = [comStr2 rangeOfString:@"\">"];
NSRange strImg = [comStr2 rangeOfString:@"img"];
if (strRange2.location != NSNotFound &&strImg.location == NSNotFound) {
NSArray *comArr2 = [comStr2 componentsSeparatedByString:@"\">"];
for (NSString *comStr3 in comArr2) {
NSRange strRange3 = [comStr3 rangeOfString:@"</a>"];
if (strRange3.location != NSNotFound) {
//根据"</a>"分割字符串
NSArray *comArr3 = [comStr3 componentsSeparatedByString:@"</a>"];
lastStr = [NSString stringWithFormat:@"%@%@%@",lastStr,[comArr3 firstObject],[comArr3 lastObject]];
}
else{
lastStr = [NSString stringWithFormat:@"%@",lastStr];
}
}
}else{
lastStr = [NSString stringWithFormat:@"%@%@",lastStr,comStr2];
// NSLog(@"lastStr == %@",lastStr);
}
[finshArray addObject:lastStr];
}
}else{
[finshArray addObject:value];
}
}
}
NSString *finshValue = @"";
for (NSString *strComp in finshArray) {
finshValue = [NSString stringWithFormat:@"%@%@",finshValue,strComp];
NSLog(@"%@,",strComp);
}
[secondCon.newsWebView loadHTMLString:finshValue baseURL:nil];