swift 用于解析 HTML 的 libxml 包装器

A swift wrapper around libxml for parsing HTML

我收到一条奇怪的错误消息 "Extra argument 'endocing' in call",但它在方法中,所以它不是额外的参数?为什么会发生这种情况,我该如何解决?如您所见,声明变量 "parser" 时会出现错误消息。谢谢!

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")
            }
        }

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

if let checkedUrl = NSURL(string:""){
    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")
}