0

我正在努力从我的 xPathQuery 中获取任何信息。我使用 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()


}
4

1 回答 1

0

尝试重命名以下行

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]"

表中还有第 186 个 tr 标签吗?这个 tr 中的第二个 td 和这个 td 中的 3 个跨度?

编辑 2

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

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

这是一个使用示例

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

于 2015-08-03T17:56:34.000 回答