ios:如何将 html 数据转换为 nsstring?

Posted

技术标签:

【中文标题】ios:如何将 html 数据转换为 nsstring?【英文标题】:ios:how to Convert html data to nsstring? 【发布时间】:2014-02-05 11:40:07 【问题描述】:

嗨,我项目中的朋友们,我的数据来自JSONserialization。像这样以html data 接收某些数据的地方 <p>activity for m43 by c31</p> 我需要将此数据转换为nsstring 并显示它。我不知道如何转换它请帮助我提前谢谢。我已经完成了一些解决方案,但不清楚。如何将 HTML NSData 转换为 NSString?请帮助我提前谢谢

-(void)connectionDidFinishLoading:(NSURLConnection *)connection 
 tweet = [[NSDictionary alloc]init];
    tweet = [NSJSONSerialization JSONObjectWithData:webData options:kNilOptions error:nil];
        [array1 addObject:[item objectForKey:@"activityTitle"]];//prints string data
        [array2 addObject:[item objectForKey:@"activityType"]];//prints string data
        [array3 addObject:[item objectForKey:@"id"]];//prints string data
        [array4 addObject:[item objectForKey:@"sessionId"]];//prints string data
 [array8 addObject:[item objectForKey:@"desc"]];// prints html data
 NSLog(@"%@",array2);
       NSString *str = [[NSString alloc] initWithData:webData encoding:NSUTF8StringEncoding];
        NSLog(@"hiiiiiii",str);

我不知道如何将该 array8(包含 html 数据)转换为 nsstring。我需要显示它uitableviewcell。像这样 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 静态 NSString *simpleTableIdentifier =@"activismCell"; CAviewCELLCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier forIndexPath:indexPath];

cell.activitytitle.text = (NSString *)[array1 objectAtIndex:indexPath.row];
cell.idline.text = (NSString *)[array3 objectAtIndex:indexPath.row];
cell.descline.text = (NSString *)[array8 objectAtIndex:indexPath.row];
cell.issuelabel.text = (NSString *)[array9 objectAtIndex:indexPath.row];
cell.timelabel.text = (NSString *)[array10 objectAtIndex:indexPath.row];

sessid = (NSString *)[array4 objectAtIndex:indexPath.row];
token = (NSString *)[array6 objectAtIndex:indexPath.row];
apikey = (NSString *)[array7 objectAtIndex:indexPath.row];
NSLog(@"%@,%@",sessid,token);
NSString *stat =(NSString *)[array2 objectAtIndex:indexPath.row];
NSLog(@"%@",stat);
NSString *trimmedString = [stat stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if([trimmedString isEqualToString:@"Two Way Video Streaming"] || [trimmedString isEqualToString:@"One Way Video Streaming"]) 
    [cell.startvideo setHidden:FALSE];
    [cell.startvideo setImage:[UIImage imageNamed:@"ca_video.png"] forState:UIControlStateNormal];
    [cell.startvideo addTarget:self action:@selector(playAction) forControlEvents:UIControlEventTouchUpInside];

else
    [cell.startvideo setHidden:TRUE];
return  cell;

【问题讨论】:

NSJSONSerialization 从不创建 NSData 对象。所以,我想知道你从哪里得到那个 NSData 对象。无论如何,如果您的 html 嵌入在 JSON 中,它很可能已经表示为 NSString。 请粘贴您的代码。这将有助于发现问题。我认为您正在从后端请求 html 数据。 我添加了我的代码检查并帮助我 【参考方案1】:

尝试使用 NSString 的 initWithData:encoding: 方法用您的数据创建一个字符串。

例子:

NSString *str = [[NSString alloc] initWithData:someData encoding:NSUTF8StringEncoding];

希望对您有所帮助。快乐编码:)

【讨论】:

不,它不起作用.. json 单个数据来自 html rest 接收正常字符串 点击此链接可能会对您有所帮助,behindtechlines.com/2012/05/display-html-strings-plaintext-ios【参考方案2】:

使用 NSXMLParser 将带有 HTML 的 NSString 转换为纯文本字符串

NSString *urlString = @"www.myurl.com";
NSString *agentString = @"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1";
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:
[NSURL URLWithString:urlString]];
[request setValue:agentString forHTTPHeaderField:@"User-Agent"];
NSData *data = [ NSURLConnection sendSynchronousRequest:request returningResponse: nil error: nil ];
NSString *returnData = [[NSString alloc] initWithBytes: [data bytes] length:[data length] encoding: NSUTF8StringEncoding];

NSLog(returnData);

转到这个web 或this

【讨论】:

对我有帮助的好答案:)

以上是关于ios:如何将 html 数据转换为 nsstring?的主要内容,如果未能解决你的问题,请参考以下文章

ios textview如何将内容转换为Html代码,需要将此数据发送到服务器

将 GIF 图像转换为 nsdata

将字符串转换为int-objective c [重复]

如何使用 iText 将 HTML 转换为 PDF [重复]

如何将sqlite db转换为ios中的核心数据

iOS录制时如何将PCM缓冲区实时转换为AAC数据?