该
parser:foundCharacters:委托方法可以被调用一次以上对于单个XML元素。在您的示例中,它将用“
Contabilit”调用一次,并用“ànazionale”调用一次。
因此,您必须 将找到的字符串从 串联
didStartElement到
didEndElement。
这是一个非常简单的示例,说明如何完成此操作。当然,如果嵌套了XML元素,它将变得更加复杂。
将当前元素字符串的属性添加到您的类中:
var currentElement : String?
然后实现这样的委托方法:
func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [NSObject : AnyObject]) { // If a "Name" element started (which you are interested in), set // currentElement to an empty string, so that the found characters // can be collected. Otherwise set it to nil. if elementName == "Name" { currentElement = "" } else { currentElement = nil }}func parser(parser: NSXMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) { // If the "Name" element ended, get the collected string and // append it to your list. if elementName == "Name" { if let name = currentElement { println(name) myList.append(name) } } currentElement = nil}func parser(parser: NSXMLParser, foundCharacters string: String?) { // If currentElement is not nil, append the found characters to it: currentElement? += string ?? ""}


