导致错误的Swift xml解析器

导致错误的Swift xml解析器,xml,swift,Xml,Swift,我正试图解析一个简单的xml文件,但我一直得到错误 “错误描述:操作无法完成。(错误-1。) 行号:0“ XML文件(名为mathquick.XML,放在名为img的文件夹中): 如何使其成功解析XML文件?我看不出有什么问题。首先,要从捆绑包的内容中读取文件,请执行以下操作: let parser = QuizXMLParser() if let path = Bundle.main.url(forResource: "mathQuiz", withExtension: "xm

我正试图解析一个简单的xml文件,但我一直得到错误

“错误描述:操作无法完成。(错误-1。) 行号:0“

XML文件(名为mathquick.XML,放在名为img的文件夹中):


如何使其成功解析XML文件?我看不出有什么问题。

首先,要从捆绑包的内容中读取文件,请执行以下操作:

    let parser = QuizXMLParser()
    if let path = Bundle.main.url(forResource: "mathQuiz", withExtension: "xml") {
        parser.beginParsing(file: path)
    }
然后将函数beginParsing(fileurl:String)更改为接受url而不是字符串

public func beginParsing(file url: URL) {
    guard let parser = XMLParser(contentsOf: url) else {
        print("Cannot Read Data")
        return
    }
    parser.delegate = self
    if !parser.parse(){
        print("Data Errors Exist:")
        let error = parser.parserError!
        print("Error Description:\(error.localizedDescription)")
        print("Line number: \(parser.lineNumber)")
    }
}

这应该可以解决您的问题。

XML文件应该从
开始。为什么要使用
NSURL
而不是
URL
?我在MakeAppie.com上学习了一个XML教程,那个家伙使用了NSURL。我会换的
let parser = QuizXMLParser()
parser.beginParsing(file: "img/mathquiz.xml")
    let parser = QuizXMLParser()
    if let path = Bundle.main.url(forResource: "mathQuiz", withExtension: "xml") {
        parser.beginParsing(file: path)
    }
public func beginParsing(file url: URL) {
    guard let parser = XMLParser(contentsOf: url) else {
        print("Cannot Read Data")
        return
    }
    parser.delegate = self
    if !parser.parse(){
        print("Data Errors Exist:")
        let error = parser.parserError!
        print("Error Description:\(error.localizedDescription)")
        print("Line number: \(parser.lineNumber)")
    }
}