前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ISO swift下XML数据解析

ISO swift下XML数据解析

原创
作者头像
用户7108768
修改2021-10-29 14:00:22
1K0
修改2021-10-29 14:00:22
举报
代码语言:javascript
复制
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.  
    }  


}  </pre> 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档