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

基本上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元素的东西,显示的内容显然不是我们想要的结果。这个时候我就联想到了使用强大的属性字符串去解析,果然就找到了相应的方法:
Objective-C代码:

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

swift代码:

let attr = try? NSMutableAttributedString(data: data, options: [NSAttributedString.DocumentReadingOptionKey.documentType: NSAttributedString.DocumentType.html], documentAttributes: nil)

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

解析后

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,993评论 19 139
  • 前情回顾 第三十一章:平淡生活 倩雪的哭声,无疑是王剑心头最大的痛。良久,倩雪不哭了,擦干眼泪。看着王剑,满脸的沧...
    遇琳阅读 357评论 3 4
  • 想学习画画的朋友们有没有这样的感觉,作为新手,在想临摹一幅画的时候特别希望能有一个详细的教程,从起线稿到上色,再到...
    木可人儿阅读 2,469评论 4 22
  • 文/叶老巫 1、 现在白领精英们,在写作上为什么有这么重的焦虑? 没有一定的积累,就想写出非同凡响的文字,就想成为...
    叶两步阅读 584评论 6 37