| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
nbmm
10年前发布

ISO swift下XML数据解析

    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.            }                        }