html - iOS:解析 HTML 并从中创建属性字符串和链接的最佳方法?

标签 html ios regex nsattributedstring

我正在寻找一些关于如何解决这个问题的建议。

我从 API 获取一个字符串,其中可能包含 HTML 标记,例如斜体文本、粗体文本、链接、图像、段落等。

我可能会选择 TTTAttributedLabel我通常非常喜欢它。

在解析过程中,我从原始字符串中创建了一个字符串,该字符串去除了所有 HTML 标记。我正在使用 NSString+HTML来自一个项目,这似乎很有效。

现在我要做的是准备一个 NSAttributedStringTTTAttributedLabel可用于以正确的格式显示文本。

我还想在单独的数组中同时准备链接。

我想知道 Regex 是否是合适的方式,我将如何实现它。

使用 Regex,我可以使用 <[^>]*> 查找任何 HTML 标签,但是,我想知道标签之间的文本。

以下面的字符串为例:

The <b>quick</b> brown fox <i>jumps</i> over the <a href="http://dog.com">lazy dog</a>.

应该显示为:

快速棕色狐狸跳过 lazy dog .

现在,我基本上想要的是 NSRange s 表示出现在标签内的每个文本及其类型(但将标签排除在等式之外)。因此,例如,对于上面的文本,我会得到:

NSRange boldRange = NSMakeRange(4, 3);
NSRange italicRange = NSMakeRange(20, 5);
NSRange urlRange = NSMakeRange(35, 8);

我认为这应该作为一个循环来完成,这样我就可以将格式添加到我正在创建的 NSAttributedString 中,当然还可以将 URL 范围保存到一个单独的数组中,这样我就可以在显示期间创建链接。

有没有图书馆可以帮助我。当我找到东西时,我会尝试更新这个问题。

最佳答案

您可以试试 OHAttributedLabel,它可以像您要​​求的那样显示 html 字符串。

关于html - iOS:解析 HTML 并从中创建属性字符串和链接的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19459412/

相关文章:

ios - anchor 偏移不适用于此处 map map 叠加 (iOS Swift)

javascript - 使用 mongodb 进行搜索查询使用 $or 返回一个结果

python - 我用于查找非法 XML 字符的正则表达式在 Python 中非常慢

javascript - 单击特定网站中的链接( anchor 标记)后显示数据

javascript - 为什么我的 jQuery 转换有问题?

ios - 使用 viewDidLayoutSubviews 检测 UITableView 滚动会导致过多的回调

ios - 带按钮的自定义 MKAnnotation 标注气泡

c# - 将 C# 正则表达式代码转换为 Java

php - 多维数组,找到所选值的键

javascript - 查询 : Get div defined in same table row