【发布时间】:2016-01-15 12:31:20
【问题描述】:
这是我的代码:
public class Payment: NSObject, NSXMLParserDelegate {
public var buchungsdatum:NSDate
public var valutadatum:NSDate
public var betrag:Double
public var verwendungszweck:String
public var creditorIban:String
public var creditorBic:String
public var creditorName:String
public var debitorIban:String
public var debitorBic:String
public var debitorName:String
override init() {
buchungsdatum = NSDate()
valutadatum = NSDate()
betrag = 0.0
verwendungszweck = ""
creditorIban = ""
creditorBic = ""
creditorName = ""
debitorBic = ""
debitorIban = ""
debitorName = ""
}
override public var description: String {
return "Payment-Information:"
}
func beginParse() {
let url = NSURL(fileURLWithPath: "/Users/Andi/Downloads/c53/CAMT/2015-10-06_C53_DE92300606010303502481_EUR_585142.xml")
let xml = NSXMLParser(contentsOfURL: url)!
xml.delegate = self
xml.parse()
}
@objc public func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
print("get an element")
}
@objc public func parserDidStartDocument(parser: NSXMLParser) {
print("started")
}
@objc public func parserDidEndDocument(parser: NSXMLParser) {
print("ended")
}
public func parser(parser: NSXMLParser, parseErrorOccurred parseError: NSError) {
print("Fehler")
}
}
var aPayment:Payment = Payment()
aPayment.beginParse()
谁能告诉我为什么 parse() 返回 false 并且没有调用任何委托方法。即使是 parseError 也没有。我完全不明白为什么。
Xcode 甚至显示 XML 文件有内容并且 url 不是 nil(见图) Xcode shows the XMLContent in the playground
【问题讨论】:
-
首先要问自己:
url是 nil 吗? -
“这让我很生气”哇,好吧,我刚刚停止提供帮助。
-
不,url 不为零(见图)
-
好的,很好。第二个问题,它是有效的 XML 吗?请在某处发布实际文件,以便我们检查。
-
是的,它非常有效。这是银行的对账单文件。抱歉,不能发布(数据安全),但相信我,它是有效的。当我将它硬编码为字符串变量时它可以工作,但这是不想做的。
标签: xcode swift parsing nsxmlparser swift-playground