我试图创建一个从网站上读取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行,同时成功解析了之前的所有标记。
答案 0 :(得分:0)
感谢Rob的评论,我得看看Hpple,它解决了我的问题。
对于那些在我的问题上寻找答案的人,我很快就会详细说明我的步骤。 实际上,HTML并不等同于XML,即使我使用的HTML格式非常好,XML Parsers在处理代码方面也存在很大问题。然后我转向Hpple,这是非常好用和友好的,并使用我在Github找到的代码,我添加到我的项目中,从那时起,我可以使用Hpple和漂亮,易于使用,语法来解析HTML,没有任何问题。
感谢大家的提示!