ISO swift下XML数据解析

本文介绍如何使用NSXMLParser解析XML格式的数据文件,并详细解释了如何在解析过程中获取节点名称、属性以及节点内容的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值