swift - 快速解析 XML 失败并出现 nil 错误
问题描述
我正在尝试使用 Swift 解析 xml 文件。我创建了一个 XMLParserDelegate 类OSM
,它实现了以下功能:
func parserDidStartDocument(_ parser: XMLParser)
func parserDidEndDocument(_ parser: XMLParser)
func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String] = [:])
func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?)
我使用委托如下:
let url = URL(string: "file:///Users/<Username>/Documents/Maps/OSMFiles/simple.osm")!
print(url.absoluteString)
let parser = XMLParser(contentsOf: url)!
let osm = OSM()
parser.delegate = osm
print(parser.parse())
print(parser.parserError)
代码打印以下内容:
file:///Users/<Username>/Documents/Maps/OSMFiles/simple.osm
false
nil
解决方案
事实证明,应用程序沙盒是问题所在,可能是因为我试图访问沙盒外的文件。关闭沙盒可以解决问题。
推荐阅读
- node.js - 如何跨不同文件使用相同的 puppeteer-cluster 任务?
- reactjs - 在 React 和 Jest 中测试 Axios 获取请求
- javascript - 为什么第一个响应是空的
- javascript - 例外:文档不可访问。请稍后再试。谷歌脚本
- python - Python flask_caching,根据传递的 Cookie 生成唯一页面
- unity3d - 如何修复错误 CS0234:命名空间“UnityEngine”中不存在类型或命名空间名称“Probuilder”(您是否缺少程序集引用?
- sql - QUERY 在 MS ACCESS 中返回分组数据中的下一行
- python - 如何将单引号添加到列表中的项目
- html - 如何将文本定位在中心图像的左侧(HTML)
- java - Java 可重入锁死锁