带有HTML代码的NSString到NSData

时间:2013-08-02 09:10:29

标签: nsstring nsdata

提前致谢! 我想知道是否可以将存储在NSString中的HTML代码转换为NSData以便稍后解析。 我正在从BBDD读取HTML代码并将其保存到NSString中。

NSString *htmlString =@"<html><body><p>introduccion</p><p>introducción</p></body></html>";

我想用:

NSData * nsData = [[NSData alloc] initWithContentsOfURL:url];

但是我不得不使用htmlString而不是initWithContentsOfURL,因为我将代码存储在BBDD中并且我正在访问它并将代码存储到NSString

谢谢!

2 个答案:

答案 0 :(得分:2)

为什么不使用标准方法将NSString转换为NSData,如下所示:

NSData* data = [htmlString dataUsingEncoding:NSUTF8StringEncoding];

答案 1 :(得分:0)

我的&#34; subject.details&#34;中有一些html格式的文本,我在正面和背面添加了一些更多的html格式。给我一个&#34; detailsS​​tringForDisplay&#34;的NSString。

我将此字符串转换为NSData。 设置一个字典,它只包含一个元素,表明文档类型是HTML。

然后最后使用数据和字典设置一个attributionText。

        NSString *fontDetailsHTML = @"<div style=\"font-size:17px; text-family:Georgia; \">";
        NSString *detailsString = subject.details;
        NSString *endFontDetailsHTML = @"</div>";
        NSString *detailsStringForDisplay = [NSString stringWithFormat:@"%@%@%@",fontDetailsHTML,detailsString,endFontDetailsHTML];
        NSData *labelTextData = [detailsStringForDisplay dataUsingEncoding:NSUnicodeStringEncoding allowLossyConversion:true];

    NSDictionary *attributesForText = [[NSDictionary alloc]initWithObjectsAndKeys:NSHTMLTextDocumentType,NSDocumentTypeDocumentAttribute , nil];

    self.detailDescriptionLabel.attributedText = [[NSAttributedString alloc]initWithData:labelTextData options:attributesForText documentAttributes:nil error:nil];