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

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/3366.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论