import UIKit class 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. } }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/3366.html