Swift parser.parse()返回false,但没有parserError

时间:2014-12-28 01:38:25

标签: html ios parsing swift nsxmlparser

我试图创建一个从网站上读取RSS源的iOS应用程序(在我的案例中为http://www.quest.nl/rss),将RSS解析为UITableView,用户可以从中选择文章。然后,所选文章将以UIWebView的形式显示。我可以成功解析XML,但是当我尝试解析文章链接时(文章链接是html,但我想我也可以使用NSXMLParser)我遇到了问题。解析器?.parse()返回false(意味着出错),但parser?.parserError的内容仍为零。

我的代码:

@objc protocol HTMLParserDelegate{
    func parsingWasFinished()
}

import UIKit

class HTMLParser: NSObject, NSXMLParserDelegate {

    func startParsingWithContentsOfURL(linkURL: NSURL) {
        let parser = NSXMLParser(contentsOfURL: linkURL)
        parser?.delegate = self
        println(parser?.parse())
    }

    func parser(parser: NSXMLParser!, parseErrorOccured parseError: NSError!) {
        println(parseError.description)
    }

    func parser(parser: NSXMLParser, 
                validationErrorOccured validationError: NSError!) {
        println(validationError.description)
    }

    func parserDidEndDocument(parser: NSXMLParser!) {
        //println("finished! :D")
        delegate?.parsingWasFinished()
    }
}

我已经尝试删除我为解析器实现的所有方法(参见上文),但即使这样也无法解析解析。

使用网址进行测试(http://www.quest.nl/foto/de-5-gekste-dieren-van-2014),我注意到解析器到达了第80行,但没有到达第95行,同时成功解析了之前的所有标记。

1 个答案:

答案 0 :(得分:0)

感谢Rob的评论,我得看看Hpple,它解决了我的问题。

对于那些在我的问题上寻找答案的人,我很快就会详细说明我的步骤。 实际上,HTML并不等同于XML,即使我使用的HTML格式非常好,XML Parsers在处理代码方面也存在很大问题。然后我转向Hpple,这是非常好用和友好的,并使用我在Github找到的代码,我添加到我的项目中,从那时起,我可以使用Hpple和漂亮,易于使用,语法来解析HTML,没有任何问题。

感谢大家的提示!