iOS 解析含有HTML標(biāo)簽的字符串

基本上APP都具有展示文章的功能,有時(shí)候添加文章的途徑不僅僅是通過(guò)APP,有可能是通過(guò)web端添加的,通過(guò)web端添加進(jìn)行排版會(huì)包含HTML標(biāo)簽以及樣式,如果后臺(tái)返回給我們的是完整的HTML,我們可以通過(guò)webview去加載,但是我遇到的情況是只是HTML的一部分包含HTML標(biāo)簽的文字內(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ā)展集團(tuán)總經(jīng)理周云帆作了致辭演講,他表示,
“據(jù)統(tǒng)計(jì)2015年僅在這一年里面,中關(guān)村新創(chuàng)辦的科技型企業(yè)達(dá)到了2.1萬(wàn)余家,很大一部分都是“互聯(lián)
網(wǎng)+”的企業(yè)。中關(guān)村的建設(shè)目標(biāo)是到2020年要建設(shè)成為具有全球影響力
的科技創(chuàng)新中心?!?      </span>
</p>
解析前

APP進(jìn)行展示的時(shí)候,UILabel并不會(huì)主動(dòng)去解析這些含有HTML元素的東西,顯示的內(nèi)容顯然不是我們想要的結(jié)果。這個(gè)時(shí)候我就聯(lián)想到了使用強(qiáng)大的屬性字符串去解析,果然就找到了相應(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)

通過(guò)屬性字符串進(jìn)行解析后,如果直接把屬性字符串賦給UILabel的attributedText屬性就會(huì)顯示出相應(yīng)的HTML樣式,如果我們不需要這些樣式,而是統(tǒng)一顯示,可以通過(guò)屬性字符串獲取string賦值給UILabel的text,從而不會(huì)顯示HTML的樣式:self.articelContent.text = [attrStr string];。

解析后

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

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

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

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