iOS 解析含有HTML標簽的字符串

基本上APP都具有展示文章的功能,有時候添加文章的途徑不僅僅是通過APP,有可能是通過web端添加的,通過web端添加進行排版會包含HTML標簽以及樣式,如果后臺返回給我們的是完整的HTML,我們可以通過webview去加載,但是我遇到的情況是只是HTML的一部分包含HTML標簽的文字內(nèi)容,例如:

<p>
      <span style="color: #333333; font-family: 'microsoft yahei', simhei; 
font-size: 16px; line-height: 28.8px; text-indent: 30px;">
      今日,GMIC 2016正式在北京開幕,開幕儀式上,中關(guān)村發(fā)展集團總經(jīng)理周云帆作了致辭演講,他表示,
“據(jù)統(tǒng)計2015年僅在這一年里面,中關(guān)村新創(chuàng)辦的科技型企業(yè)達到了2.1萬余家,很大一部分都是“互聯(lián)
網(wǎng)+”的企業(yè)。中關(guān)村的建設(shè)目標是到2020年要建設(shè)成為具有全球影響力
的科技創(chuàng)新中心?!?      </span>
</p>
解析前

APP進行展示的時候,UILabel并不會主動去解析這些含有HTML元素的東西,顯示的內(nèi)容顯然不是我們想要的結(jié)果。這個時候我就聯(lián)想到了使用強大的屬性字符串去解析,果然就找到了相應(yīng)的方法:
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屬性就會顯示出相應(yīng)的HTML樣式,如果我們不需要這些樣式,而是統(tǒng)一顯示,可以通過屬性字符串獲取string賦值給UILabel的text,從而不會顯示HTML的樣式:self.articelContent.text = [attrStr string];

解析后

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,390評論 4 61
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,569評論 19 139
  • 前情回顧 第三十一章:平淡生活 倩雪的哭聲,無疑是王劍心頭最大的痛。良久,倩雪不哭了,擦干眼淚??粗鮿?,滿臉的滄...
    遇琳閱讀 385評論 3 4
  • 想學(xué)習(xí)畫畫的朋友們有沒有這樣的感覺,作為新手,在想臨摹一幅畫的時候特別希望能有一個詳細的教程,從起線稿到上色,再到...
    木可人兒閱讀 2,582評論 4 22
  • 文/葉老巫 1、 現(xiàn)在白領(lǐng)精英們,在寫作上為什么有這么重的焦慮? 沒有一定的積累,就想寫出非同凡響的文字,就想成為...
    葉兩步閱讀 623評論 6 37

友情鏈接更多精彩內(nèi)容