標籤:
import UIKitclass ViewController: UIViewController ,NSXMLParserDelegate{ override func viewDidLoad() { super.viewDidLoad() //建立XMLParser對象,傳入XML格式的資料檔案// var parser=NSXMLParser(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("data", ofType: "xml")!))! //解析字串格式的XML資料 let string="<data><person age='25'>zhangsan</person><person age='20'>lisi</person><person>wangwu</person><a><b><c>data</c></b></a></data>" //字串轉換為NSData格式一下兩種方式都可以轉換 //let string1:NSString = string //let data1:NSData = string1.dataUsingEncoding(NSUTF8StringEncoding)! var data1:NSData = NSData(bytes: string, length: count(string)) var parser = NSXMLParser(data: data1) //委託 parser.delegate = self //開始解析 parser.parse() } var elementName:String = "" var attributeDice:[NSObject : AnyObject] = [NSObject : AnyObject]() /* 開始解析的時候會執行該方法,通過此方法可以得到節點名稱和屬性 */ func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [NSObject : AnyObject]){ self.elementName=elementName//當前迴圈節點的節點名稱 self.attributeDice=attributeDict//當前迴圈節點的所有屬性 println(elementName) } /* 通過此方法得到節點包含的內容 */ func parser(parser: NSXMLParser, foundCharacters string: String?) {// //因為XML裡面可能包含了分行符號合空格,可以通過此方法去掉分行符號合空格 var str:String! = string?.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()) if str != ""{ println("\(elementName):\(str)") } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }}
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
ISO swift下XML資料解析