我有一个从 Restful Web 服务中提取数据的 iOS 应用程序。我收到的部分内容正在加载到UITextView
. 将进入文本视图的部分以 HTML 格式出现。我需要将其从 HTML 转换为纯文本,同时使用段落标签正确格式化文本视图。
这是 HTML 格式的样子
<p data-seq="1"><span class="paragraph">Content of paragraph 1</span></p><p data-seq="2"><span class="paragraph">Content of paragraph 2</span></p>
您可以看到<p data-seq="2"><span class="paragraph">....</span></p>
指定段落的开头和结尾。
我最初尝试使用NSScanner
此示例中的如何将 NSString HTML 标记转换为纯文本 NSString?. 这实现起来很快,但它会去除所有标签并将文本解析为一个长段落。
我已添加libXml2
到我的代码中。我开始按照本教程进行实施,但是在开始完成之后,我不确定如何将输出格式化为段落。
我还看到了对DTCoreText 库的建议,但我没有看到很多关于它的信息。
有人可能会使用上述三个选项中的任何一个或他们自己的一个选项来抛出一个关于如何在维护段落的同时将 html 解析为纯文本的片段吗?
解决方案
根据 lxt 的建议,我进行了调查DTCoreText
。一旦我设法将它安装在我的应用程序中(绝对推荐可可豆荚)。就像#import "DTCoreText.h"
在 my中一样简单detailViewController
,然后在下面的行中将其添加到UITextView
.
NSDictionary *options = @{DTUseiOS6Attributes: [NSNumber numberWithBool:YES]};
NSData *htmlData = [self.htmlString dataUsingEncoding:NSUTF8StringEncoding];
NSAttributedString *stringArticle = [[NSAttributedString alloc] initWithHTMLData:htmlData options:options documentAttributes:NULL];
self.newsDetailText.attributedText = stringArticle;
第一次构建失败,因为我没有包含该DTUseiOS6Attributes
行。第二次构建成功,详细视图的格式完美。这是一个拳头时刻!再次感谢lxt的推荐!