Parsing large XML files fails--ERROR:Error Domain=DDXMLErrorDomain Code=1 "(null)"

Parsing large XML files fails--ERROR:Error Domain=DDXMLErrorDomain Code=1 "(null)"

我正在使用 KissXML 解析 XML。我可以成功解析小 [=​​17=],但对大 XML 有问题。这是我的代码

let url = URL(fileURLWithPath: xmlPath!)
let xmlData = try! Data(contentsOf: url)
    do {
        let doc = try DDXMLDocument(data: xmlData, options:0)// This is not working if xml is large (6MB)
        let project = try! doc.nodes(forXPath: "//Project") as! [DDXMLElement]

        for user in project {

            let ProjectName = user.attribute(forName: "ProjectName")!.stringValue
            let userTime = user.attribute(forName: "UseTime")!.stringValue
            print("ProjectName:\(ProjectName!),userTime:\(userTime!)")
        }
    }
    catch {
        print("\(error)") //Get some idea from this error
    }

解析12k时XML成功,解析6M时XML失败。解析大XML(6M)时,doc等于nil。 我尝试使用NSXMLParser,出现同样的问题,小文件可以,大文件不行't.ERROR:NSXMLParserErrorDomain error 4.

您不应忽略使用 try? 的错误,始终将其包含在 do - catch 结构中。使用下面的代码,看看你得到了什么错误,然后尝试解决它。不要在黑暗中拍摄,从错误中得到一些想法,如果没有任何效果 post 你在问题中的错误信息。

do {
    let doc = try DDXMLDocument(data: xmlData, options:0)
    // Your next line of code
}
catch {
    print("\(error)") //Get some idea from this error
}