所以,让我尽可能简单明了地解释一下...... 我试图使用swift从我的常规方法解析网址中的xml文件:
if let parser = NSXMLParser(contentsOfURL: xml) {
parser.delegate = self
let success:Bool = parser.parse()
if success {
print("parse success")
} else {
print("parse failure!")
}
}
它有效,但是当遇到特殊字符(例如重音符号)时,一切都变得一团糟,所以我在这里发现,如果不是直接解析网址,而是使用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!")
}
但是这总是会返回&#34;捕获失败!&#34;,网址是正常的并且正常工作,其他方法正常工作(除了特殊字符)我真的不知所措。< / p>
非常感谢你!
答案 0 :(得分:0)
在得到另一个答案Here后,我能够解决问题。
而不是使用:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/> <!-- for the text -->
<ColumnDefinition Width="Auto"/> <!-- for the delete button -->
</Grid.ColumnDefinitions>
我用过:
func parser(parser: NSXMLParser, foundCharacters string: String) {
if (currentElement != ""){
currentString = string
}
}
一切都按原样运作!