为什么在使用 TFHpple 解析此 HTML 数据后我没有得到任何数据

Why am I not getting any data after Parsing this HTML data using TFHpple

我正在努力从我的 xPathQuery 中获取任何信息。 link 我使用 Chrome 的开发人员工具,并通过右键单击所附屏幕截图中突出显示的行来完成。我正在创建一个基于食谱的应用程序,在我尝试扩大它之前,我只是在玩弄单个 URL。将不胜感激!

override func viewDidLoad() {
    super.viewDidLoad()

    let url=NSURL(string:"http://www.bbc.co.uk/food/recipes/roast_shoulder_of_lamb_92545")

    let session = NSURLSession.sharedSession()

    let task = session.dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in

        if error == nil {

            var parser = TFHpple(HTMLData: data)

            var xPString = "/html/body/table/tbody/tr[186]/td[2]/span[3]"

            var nodes = parser.searchWithXPathQuery(xPString) as? [TFHppleElement]

            println(nodes)

        }

    })

    task.resume()


}

尝试重命名来自

的以下行
var nodes = tutorialParser.searchWithXPathQuery(xPString) as? [TFHppleElement]

var nodes = parser.searchWithXPathQuery(xPString) as? [TFHppleElement]

编辑 1

我刚刚查看了您尝试解析的 url 中的 html 代码...我使用 safaris 开发人员工具搜索了子字符串 "tbody".. . 似乎 html 中没有定义 "tbody",所以你的解析器将无法找到它,也许会给你一个空数组,就像他目前正在做的那样......

您可以尝试在 xPString 中不使用 "tbody" 进行搜索吗?

所以从

var xPString = "/html/body/table/tbody/tr[186]/td[2]/span[3]"

var xPString = "/html/body/table/tr[186]/td[2]/span[3]"

还有table里面有第186个tr标签吗?此 tr 中的第二个 td 和此 td 中的 3 个跨度?

编辑 2

好的,这是您的解析器....

https://gist.github.com/DennisWeidmann/27ea76b5aed4718cf4ce

这是一个用法示例

https://gist.github.com/DennisWeidmann/a66ce53ad8691744d6a6