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
}
我正在使用 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
}