Swift:解析HTML的最快方法

Swift:解析HTML的最快方法

问题描述:

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

  • 使用字符串函数的第三方库 - 我已经试过了。它运行良好,但我想这比其他更低级别的方法要慢得多,除非有一些特别快速的Swift专用。

  • 使用第三方HTML解析器。我已经研究了一些,但我不确定它们是否会满足我的需求。在我继续这个之前,我只想知道这些通常是否更快,如果有任何非常快的,并且我可以调整它们以从源代码中明确得到我想要的。

  • 使用String或NSString。根据我的理解,使用String vs NSString应该不会影响速度。我对这种方法很满意,而且比其他一些方法要低,所以我应该期待相当快的性能?

  • 使用正则表达式。我被告知,由于这些是较低层次的,他们应该是最快的。我之前使用过正则表达式,但不是在ios中。使用NSRegularExpression进行字符串解析很容易,而且速度更快吗?

谢谢!

+2

http://blog.codinghorror.com/parsing-html-the-cthulhu-way/与您最后一点的关系如此相关。不要使用正则表达式 – d0nut 2015-08-11 07:21:58

+0

为了扩展iismathwizard的有效性,不应该用正则表达式来解析html的原因是,使用html的正则表达式只是太复杂了,并且变得充满了麻烦的特殊字符。 – 2015-08-20 18:53:40

+0

如果您将此文本加载到某种WebView中,可能只需使用JavaScript [Core]让WebKit为您处理此问题。如果不是,愿神灵怜悯你的灵魂。 – CodaFi 2015-08-20 20:23:01

临到这个环节,而研究你的问题:http://benedictcohen.co.uk/blog/archives/74

作者解释了较老的方法是什么@CodaFi建议,但在最后一个相关的更新,你应该检查出:

解析HTML的最简单方法是将其视为XML并使用NSXMLParser。 iOS自带的LibTidy能够修复多个标记错误。使用LibTidy创建干净的XML并将此XML传递给NSXMLParser。如果 无法使用NSXMLParser,则只能使用上述方法。

因此,也许选项4或5让你检查?