在Swift中将HTML转换为纯文本
我正在开发一个简单的RSS
Reader应用程序,作为Xcode中的初学者项目。目前,我已设置它解析提要,并放置标题,发布日期,描述和内容,并将其显示在WebView中。
我最近决定在用于选择帖子的TableView中显示说明(或内容的删节版本)。但是,这样做时:
cell.textLabel?.text = item.title?.uppercaseStringcell.detailTextLabel?.text = item.itemDescription //.itemDescription is a String
它显示了帖子的原始HTML。
我想知道如何仅将TableView的详细UILabel转换为纯文本的HTML。
谢谢!
回答:
您可以添加此扩展名以将html代码转换为常规字符串:
编辑/更新:
讨论不应从后台线程调用HTML导入器(即,选项字典包含值为html的documentType)。它将尝试与主线程同步,失败并超时。从主线程调用它是可行的(但如果HTML包含对外部资源的引用,仍可能会超时,应该不惜一切代价避免这样做)。HTML导入机制用于实现诸如markdown之类的东西(即,文本样式,颜色等),而不是用于常规HTML导入。
extension Data { var html2AttributedString: NSAttributedString? {
do {
return try NSAttributedString(data: self, options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding: String.Encoding.utf8.rawValue], documentAttributes: nil)
} catch {
print("error:", error)
return nil
}
}
var html2String: String { html2AttributedString?.string ?? "" }
}
extension StringProtocol { var html2AttributedString: NSAttributedString? {
Data(utf8).html2AttributedString
}
var html2String: String {
html2AttributedString?.string ?? ""
}
}
cell.detailTextLabel?.text = item.itemDescription.html2String
以上是 在Swift中将HTML转换为纯文本 的全部内容, 来源链接: utcz.com/qa/405761.html