0

我正在使用KissXML. 我可以成功解析小型 XML,但遇到大型 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,出现同样的问题,小文件可以工作,大文件不能。错误:NSXMLParserErrorDomain错误4。

4

1 回答 1

0

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

do {
    let doc = try DDXMLDocument(data: xmlData, options:0)
    // Your next line of code
}
catch {
    print("\(error)") //Get some idea from this error
}
于 2017-12-20T06:18:46.707 回答