我正在构建一个游戏引擎,并希望为XML格式的Collada文件实现我自己的解析器。我正在尝试创建一个XMLParser来为我执行此操作但由于某些原因在加载.dae扩展时,没有任何作用。
加载文件示例:
//file = XMLParserDelegate
if let url = Bundle.main.url(forResource: colladaFileName, withExtension: "dae") {
if let parser = XMLParser.init(contentsOf: url) {
parser.delegate = self
parser.parse()
}
}
有趣的是,所有这些代码都被执行了。直到它调用函数“parseErrorOccurred”,我才能看到错误消息,其中指出“Document is empty”
func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error){
print(parseError) //result: Document is empty
}
这就是我真正的困惑!
当我将文件的扩展名更改为.xml并将函数更改为"withExtension: "xml"
时,代码编译得很好,没有错误,我可以看到所有文件数据。
我的目标是不必将我的.dae文件格式永远改为.xml。我该怎么做才能解决这个问题?