在Swift中将HTML转换为纯文本

我正在开发一个简单的RSS

Reader应用程序,作为Xcode中的初学者项目。目前,我已设置它解析提要,并放置标题,发布日期,描述和内容,并将其显示在WebView中。

我最近决定在用于选择帖子的TableView中显示说明(或内容的删节版本)。但是,这样做时:

cell.textLabel?.text = item.title?.uppercaseString

cell.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

回到顶部