【发布时间】:2015-08-21 10:52:12
【问题描述】:
所以,让我尽可能简单和简短地解释一下......
我正在尝试使用 swift 使用常规方法从 url 解析 xml 文件:
if let parser = NSXMLParser(contentsOfURL: xml) {
parser.delegate = self
let success:Bool = parser.parse()
if success {
print("parse success")
} else {
print("parse failure!")
}
}
它可以工作,但是当遇到重音等特殊字符时,一切都变得一团糟,所以我在这里发现,如果不是直接解析 url,我使用 NSData 的编码就不会发生。
当我第一次尝试 swift 2.0 和使用 catch 和 try 进行错误处理时,对此知之甚少。这是我的代码:
do{
let dataString = try String(contentsOfURL: XML, encoding: NSUTF8StringEncoding)
let data:NSData = dataString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
if let parser = NSXMLParser(data: data) as NSXMLParser! {
parser.delegate = self
let success:Bool = parser.parse()
if success {
print("parse success")
} else {
print("parse failure!")
}
}
}catch {
print("catch failure!")
}
但这总是返回“捕获失败!”,网址没问题并且可以正常工作,其他方法可以正常工作(特殊字符除外)我真的很茫然。
非常感谢您!
【问题讨论】: