ISO swift下XML数据解析

来源:互联网 发布:王小波与李银河 知乎 编辑:程序博客网 时间:2024/06/09 23:47
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.    }}

0 0
原创粉丝点击