【问题标题】:Swift: fastest way to parse HTMLSwift:解析 HTML 的最快方法
【发布时间】:2015-01-23 00:20:09
【问题描述】:

我有一个大的源代码文件,我需要从中解析出一些特定的文本。我想尽快完成它。在 Swift 中最快的方法是什么?这些都是我能想到的选项?

  • 使用第三方字符串函数库 - 我已经尝试过了。它工作得很好,但我想这比一般其他较低级别的方法要慢得多,除非有一些专门针对 Swift 的特别快的方法。

  • 使用第三方 HTML 解析器。我已经研究了一些,但我不确定它们是否适合我的需要。在我继续之前,我只想知道这些通常是否更快,是否有任何值得注意的快速的,以及我是否能够调整它们以从源代码中获得我想要的具体内容。

  • 使用字符串或 NSString。据我了解,使用 String 与 NSString 在速度上应该没有区别。我对这种方法很满意,而且它比其他一些方法低,所以我应该期待相当快的性能吗?

  • 使用正则表达式。有人告诉我,由于这些级别较低,因此理想情况下它们应该是最快的。我以前使用过正则表达式,但在 ios 中没有。用 NSRegularExpression 做字符串解析容易吗,速度快吗?

谢谢!

【问题讨论】:

  • blog.codinghorror.com/parsing-html-the-cthulhu-way 与您的最后一点非常相关,这很痛苦。不要使用正则表达式
  • 为了扩展 iismathwizard 的有效点,不应该用正则表达式解析 html 的原因是带有 html 的正则表达式太复杂了,并且充满了麻烦的特殊字符。
  • 如果您将此文本加载到某种 WebView 中,您最好只使用 JavaScript[Core] 让 WebKit 为您处理。如果没有,愿众神怜悯你的灵魂。
  • 如果您刚刚开始使用 Swift,我建议您查看不只针对一种操作环境的其他语言。现有的脚本语言(如 Ruby)具有出色的代码库,可以完成您想要的工作。 Nokogiri 可以完美地满足您的需求,并且易于使用。使用 Ruby 进行移动开发即将到来。 - 对于 iOS,请查看 RubyMotion - 对于 Android,请查看 Ruboto

标签: regex swift html-parsing


【解决方案1】:

在研究您的问题时访问此链接:http://benedictcohen.co.uk/blog/archives/74

作者解释了@CodaFi 建议的旧方法,但最后有一个相关更新,您应该查看:

解析 HTML 最简单的方法是将其视为 XML 并使用 NSXML 解析器。 iOS 自带 LibTidy,它能够修复 许多标记罪。使用 LibTidy 创建干净的 XML 并通过 这个 XML 到 NSXMLParser。仅在以下情况下使用上述方法 无法使用 NSXMLParser。

所以也许选项 4 或 5 供您检查?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 2011-06-21
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-01
    相关资源
    最近更新 更多