去除网络请求中数据的链接

做项目时可能需要一些网络接口的数据,然后用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];


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值