目标C:从字符串中剥离HTML属性

时间:2011-07-03 00:02:56

标签: objective-c ios string

从字符串中删除HTML标记有很多答案,但我只想删除一个特定的属性:style。我正在处理的HTML有一些非常令人讨厌的内联样式,通常看起来像这样:

<p class="someclass" style="margin-left:2cm;text-indent:-36.0pt">Blah.</p>

为了调整应用程序的显示,我需要去除该样式属性。是否有快速处理文档的方法来执行此操作?它需要在iOS中运行。

谢谢!

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

最终,我使用了ElementParser和正则表达式(使用RegExKitLite)的组合,并根据需要删除了我不想要的标记并将其替换为我所做的标记。鉴于我的HTML来自可信来源,这应该没问题。

这远非理想,但它正在发挥作用。 : - )

答案 2 :(得分:0)

可能最简单(但也非常昂贵(CPU密集型))是使用NSAttributedString+HMTL将其转换为NSAttributedString。然后你可以从中获得NSString。

像这样。

  NSAttributedString *attrstring = [NSAttributedString attributedStringWithHTML:[htmlString dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES] options:nil];

  //Access the string itself like this.
  [attrstring string];

[警告:虽然这是最简单的方法,(对你而言),它可能不是最好的方式,因为它是相当昂贵的待办事项,如果在主线程上完成,将阻止你的UI(显而易见的原因)]