웹 사이트 (내 경우 http://www.quest.nl/rss)에서 RSS 피드를 읽는 iOS 앱을 만들고, RSS를 UITableView로 구문 분석합니다. 기사를 선택할 수 있습니다. 선택한 기사는 UIWebView
으로 표시됩니다. XML을 성공적으로 파싱 할 수 있지만 기사 링크 (html 기사 링크입니다.하지만 NSXMLParser도 사용할 수있는 것으로 생각했습니다)를 구문 분석하려고 할 때 문제가 발생합니다. parser? .parse()는 false를 반환하지만 (뭔가 잘못되었음을 의미 함) parser?.parserError
의 내용은 여전히 nil입니다. 구문 분석을 해결하지 않았다 내가 파서 구현 모든 방법을 삭제 시도Swift parser.parse()는 false를 반환하지만 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()
}
}
(위 참조)하지만, 심지어 :
내 코드입니다.
URL을 테스트 (http://www.quest.nl/foto/de-5-gekste-dieren-van-2014)로 사용하면 파서가 80 줄로 표시되지만 95 줄에 표시되지 않고 모든 이전 태그를 성공적으로 파싱하는 것으로 나타났습니다.
일반적으로 'NSXMLParser'를 사용하여 HTML을 구문 분석 할 수 없습니다. THPPL 사용을 고려해야합니다. [iOS에서 HTML 구문 분석 방법] (http://www.raywenderlich.com/14172/how-to-parse-html-on-ios)을 참조하십시오. – Rob
한편, XML 표준을 따르지 않는 것에 대한 자세한 설명 오류를 찾고 있다면 커맨드 라인'xmllint' 프로그램이 비추어지고 있습니다. 나는이 경우에 필요하다고 확신하지 않지만 유효한 XML이라고 생각되는 내용을 파싱하는 데 문제가 있다면'xmllint'는 뒷주머니에 보관할 좋은 리소스입니다. – Rob