swift - 为什么我不能使用 Swift 4 加载 Collada 文件?

标签 swift xml xml-parsing collada

我正在构建一个游戏引擎,并想为 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”,我才能看到错误消息“文档为空”

func parser(_ parser: XMLParser, parseErrorOccurred parseError: Error){
    print(parseError) //result: Document is empty
}

这才是真正让我困惑的地方!

当我将文件的扩展名更改为 .xml 并将函数更改为 "withExtension: "xml" 时,代码编译得很好,没有错误,我可以看到所有文件数据。

我的目标是不必每次都将我的 .dae 文件格式更改为 .xml。我该怎么做才能解决这个问题?

最佳答案

我通过在 Xcode 中将其类型更改为 Data 来读取 .dae 文件的内容,如以下屏幕截图所示:

enter image description here

我不知道这是否适合您的需求,但我希望它能有所帮助

关于swift - 为什么我不能使用 Swift 4 加载 Collada 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52156203/

相关文章:

java - 如何修复错误 "org.xml.sax.SAXParseException/Content is not allowed in prolog"?

ios - 更改 Alamofire.SessionManager 的 serverTrustPolicy 以仍然使用像 Alamofire.request 这样的顶级便捷方法

swift - UITableView 自定义单元格高度无法正确管理 swift 中的动态约束

javascript - 使用 AJAX 从 URL 加载 XML 时如何修复 "Access Control Allow Origin"错误?

xml - 在 XSLT 中将日期从名称转换为数字

java - 如何使用 DOM 解析器解析忽略 DOCTYPE 声明的 xhtml

swift - 如何在主屏幕之前设置首次登录 View Controller

ios - SKSpriteNode zPosition绘图?

java - 使用 XPath/DOM/SAX 解析 XML

xml-parsing - 用于 Active Sync 实现的 WBXML 解析器