ios - 快速HTML解析

标签 ios swift html-parsing

我正在将html内容从 objective-c 解析为swift作为的引用http://www.raywenderlich.com/14172/how-to-parse-html-on-ios

    var tutorialsURL = NSURL(string: "http://www.raywenderlich.com/tutorials")
    var tutorialsHTMLData: NSData = NSData(contentsOfURL: tutorialsURL)
    var tutorialsParser = TFHpple(HTMLData: tutorialsHTMLData)
    var tutorialsXPathString = "//div[@class='content-wrapper']/ul/li/a"
    var tutorialNodes = tutorialsParser.searchWithXPathQuery(tutorialsXPathString)
    var newTutorials: NSMutableArray = [0]

    for element in tutorialNodes
    {
        var elementTwo: TFHppleElement = element as TFHppleElement
        var tutorial = Tutorial()

        println("my data in element2 \(elementTwo)")
        println("\(tutorial)")
        newTutorials.addObject(tutorial)

        tutorial.title = elementTwo.firstChild.content as String!

        tutorial.url = elementTwo.objectForKey("href")


    }
    objects = newTutorials
    tableView.reloadData()

}

但是当我运行此命令时,我遇到了类似于的致命错误:意外地发现nil展开了一个可选值

有人帮我

最佳答案

经过一番艰苦的努力,我找到了问题的解决方案,节点问题** var tutorialsXPathString =“// div [@ class ='content-wrapper'] / ul / li / a” **没有正确给出,
我尝试了另一个网址,并正确指定了searchpathstring,问题已解决,

   func loadTutorial()
   {

    var tutorialsURL = NSURL(string: "http://www.worldgeneralknowledge.com/important_books_and_aurther.html")
    var htmlData: NSData = NSData(contentsOfURL: tutorialsURL)
    var tutorialsParser = TFHpple(HTMLData: htmlData)
    var tutorialsXPathString = "//table/tr/td[@class=\"tr_dark\"]"
    var tutorialNodes = tutorialsParser.searchWithXPathQuery(tutorialsXPathString) as NSArray
    if(tutorialNodes.count == 0)
    {
        println("empty here")
    }
    else
    {
        for element in tutorialNodes
        {
            var elementTwo: TFHppleElement = element as TFHppleElement
            var tutorial = Tutorial()
            println("\(elementTwo.firstChild.content)")
            tutorial.title = elementTwo.firstChild.content as String!
            objects.addObject(tutorial.title)
        }
        tableView.reloadData()

    }
}

如果需要,还可以通过将其作为搜索路径字符串来搜索更多节点,并且可以将它们添加到单个数组中,然后可以打印内容。

谢谢。

关于ios - 快速HTML解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26798005/

相关文章:

python - 匹配不需要的链接

ios - 全局变量神秘丢失内存?

ios - iOS:将Admob广告添加到应用中导致错误

swift - 计算 tableview 中 name 等于的所有行

ios - 在分割 View Controller 中主视图 Controller 未显示

python - 在 [Python] 中查找所有 TR(来自 html <table>)

ios - 如何在 UILabel 中的行与行之间留一个空格?

cocoa-touch - 内置 UIView 动画的核心动画等价物

ios - 从不同节点查询Firebase数据

python - 根据 for 循环中的迭代次数向列表添加不同的值