从HTML源Swift

时间:2016-04-27 14:03:24

标签: html ios iphone swift

我想从网站中提取链接。我使用以下代码检索了网站的HTML:

let myHTMLString = try String(contentsOfURL: myURL)

并输出:

...
<div class="map-overlay-box">
<a href="{directions_link}" target="_blank" class="store-info self clear">
...

我想找到网页的{directions_link}部分。当我进入Safari并检查元素时,我能够看到链接,但在我的应用程序中,它只是被替换为该占位符。

我试图像这样使用Kannasee here),但我没有结果:

if let doc = Kanna.HTML(html: myHTMLString, encoding: NSUTF8StringEncoding) {
     for link in doc.xpath("//div[@class='map-overlay-box']") {
          print(link.text)
          print(link["href"])
     }
}

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

XPath没有CSS类选择器的本机等价物。

尝试以下 xpath

//*[contains(concat(' ', normalize-space(@class), ' '), 'map-overlay-box')]

要排除使用javascript生成的动态HTML,请尝试使用输出进行测试:

let myHTMLString = "<div class=\"map-overlay-box\"><a href=\"{directions_link}\" target=\"_blank\" class=\"store-info self clear\"></a></div>"

如果你的HTML是动态生成的,请记住你还有stringByEvaluatingJavaScriptFromString来帮助你解释JS并获取你的html字符串..