iOSOC开发iOS 开发每天分享优质文章

iOS 解析含有HTML标签的字符串

2016-09-12  本文已影响469人  心至靜行至遠

基本上APP都具有展示文章的功能,有时候添加文章的途径不仅仅是通过APP,有可能是通过web端添加的,通过web端添加进行排版会包含HTML标签以及样式,如果后台返回给我们的是完整的HTML,我们可以通过webview去加载,但是我遇到的情况是只是HTML的一部分包含HTML标签的文字内容,例如:

<p>
      <span style="color: #333333; font-family: 'microsoft yahei', simhei; 
font-size: 16px; line-height: 28.8px; text-indent: 30px;">
      今日,GMIC 2016正式在北京开幕,开幕仪式上,中关村发展集团总经理周云帆作了致辞演讲,他表示,
“据统计2015年仅在这一年里面,中关村新创办的科技型企业达到了2.1万余家,很大一部分都是“互联
网+”的企业。中关村的建设目标是到2020年要建设成为具有全球影响力
的科技创新中心。”
      </span>
</p>
解析前

APP进行展示的时候,UILabel并不会主动去解析这些含有HTML元素的东西,显示的内容显然不是我们想要的结果。这个时候我就联想到了使用强大的属性字符串去解析,果然就找到了相应的方法:

NSMutableAttributedString * attrStr = [[NSMutableAttributedString alloc]
                                      initWithData:[string dataUsingEncoding:
                                      NSUnicodeStringEncoding] 
                                      options:@{
                                        NSDocumentTypeDocumentAttribute:                                                                               
                                        NSHTMLTextDocumentType
                                      }
                                      documentAttributes:nil error:nil];
self.articelContent.text = [attrStr string];

通过属性字符串进行解析后,如果直接把属性字符串赋给UILabel的attributedText属性就会显示出相应的HTML样式,如果我们不需要这些样式,而是统一显示,可以通过属性字符串获取string赋值给UILabel的text,从而不会显示HTML的样式:self.articelContent.text = [attrStr string];

解析后
上一篇 下一篇

猜你喜欢

热点阅读