2016-10-18 99 views

回答

11

您是否確實需要保留<span>標籤,同時替換&ouml;這個符號?由Leo Dabus在Convert Unicode symbol or its XML/HTML entities into its Unicode number in Swift中提出的一種技術,將這些符號轉換爲包括通過屬性字符串將其翻轉的符號。

在斯威夫特4:

extension String { 
    /// Converts HTML string to a `NSAttributedString` 

    var htmlAttributedString: NSAttributedString? { 
     return try? NSAttributedString(data: Data(utf8), options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding: String.Encoding.utf8.rawValue], documentAttributes: nil) 
    } 
} 

如果你想要一個屬性串(例如,用於在UILabel使用)

let string = "Bj&ouml;rn is <em>great</em> name" 
label.attributedText = string.htmlAttributedString 

這種轉換Bj&ouml;rnBjörn和斜體的<em>...</em>部分,也。

如果你只是要轉換的HTML標記,並剝離出的HTML標籤(如您的<span>/</span>),只要抓住了string

let string = "Bj&ouml;rn is <em>great</em> name" 
if let result = string.htmlAttributedString?.string { 
    print(result) // "Björn is great name" 
} 

事先斯威夫特版本,請參閱previous revision這個答案。

+0

非常感謝!它的工作原理 – Kirill

+0

'數據(在你的例子中使用:.utf8'片段拋出使用未解析的標識符'data''任何想法如何解決這個問題? – afkatja

+0

嗨羅布和謝謝你奇怪,我使用斯威夫特3,仍然有 – afkatja