libxml周围的swift包装器,用于解析HTML

时间:2015-02-26 19:34:49

标签: html xcode parsing swift ios8

我收到一条奇怪的错误消息说"额外的争论' endocing'在电话"中,但它在方法中,所以它不是一个额外的参数?为什么会发生这种情况,我该如何解决这个问题呢?声明变量"解析器"时会出现错误消息。如你看到的。谢谢!

if let checkedUrl = NSURL(string:"http://www.mobladet.se") {

            if let htmlString = String(contentsOfURL: checkedUrl, encoding: NSUTF8StringEncoding, error: nil) {

                // Parsing HTML

                let opt = CInt(HTML_PARSE_NOERROR.value | HTML_PARSE_RECOVER.value)

                var err : NSError?

                var parser = HTMLParser(html: htmlString, encoding: NSUTF8StringEncoding, option: opt, error: &err)

                var bodyNode = parser.body

                // Create an array of the part of HTML you need

                if let inputNodes = bodyNode?.findChildTags("h4") {

                    for node in inputNodes {

                        let result = html2String(node.rawContents)

                        println(result)

                    }
                }

            } else {

                println("Could not load HTML Content")
            }
        }

1 个答案:

答案 0 :(得分:1)

html应该是要解析的HTML代码而不是NSURL。您需要使用String(contentsOfURL :)来提取其内容并解析它

if let checkedUrl = NSURL(string:"http://stackoverflow.com/questions/28751228/a-swift-wrapper-around-libxml-for-parsing-html"){
    if let htmlString = String(contentsOfURL: checkedUrl, encoding: NSUTF8StringEncoding, error: nil) {

        println(htmlString)
    } else {
        println("could not load html string from the url")
    }
} else {
    println("invalid url")
}