IOS 解析XML格式
来源:互联网 发布:阿里云数据盘克隆 编辑:程序博客网 时间:2024/05/21 07:12
新建空文件 创建XML文件 写入代码
例如:
//data.xml<data> <person age="20">me</person> <person age="17">xin</person> <person>love</person> <a> <b> <c>Data</c> </b> </a></data>
在viewDidLoad()函数中写入
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //传入一个路径解析,创建一个XML的解析对象 var paser = NSXMLParser(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("data", ofType: "xml")!)) paser!.delegate = self paser?.parse() }
在全局定义一个currenNodeName
var currenNodeName:String!
//开始解析时 func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [NSObject : AnyObject]) { currenNodeName = elementName //elementName 节点名称// println(elementName) //解析节点里的属性 if elementName=="person"{// var age: AnyObject? = attributeDict["age"]// println("age:\(age!)")//直接输出,如果遇到没有 age 属性的 person 则会出错 if let age: AnyObject = attributeDict["age"]{ println("age:\(age)") //如果有[age]属性的就输出,没有不做处理 } } }
输出节点中的值:
//查找到字符时 func parser(parser: NSXMLParser, foundCharacters string: String?) {// println(string!) //去掉空格和空行 var str = string?.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()) if str != ""{ //字符串不为空则输出// println(str!) //节点,值 println("current node:\(currenNodeName),value:\(str!)") } }
完整的代码
//viewcontroller.swiftimport UIKitclass ViewController: UIViewController,NSXMLParserDelegate { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //传入一个路径解析,创建一个XML的解析对象 var paser = NSXMLParser(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("data", ofType: "xml")!)) paser!.delegate = self paser?.parse() } var currenNodeName:String! //开始解析时 func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [NSObject : AnyObject]) { currenNodeName = elementName //elementName 节点名称// println(elementName) //解析节点里的属性 if currenNodeName=="person"{// var age: AnyObject? = attributeDict["age"]// println("age:\(age!)") if let age: AnyObject = attributeDict["age"]{ println("age:\(age)") } } } //查找到字符时 func parser(parser: NSXMLParser, foundCharacters string: String?) {// println(string!) //去掉空格和空行 var str = string?.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()) if str != ""{// println(str!) //节点,值 println("current node:\(currenNodeName),value:\(str!)") } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }}
0 0
- IOS 解析XML格式
- iOS中的XML数据解析交换格式
- iOS开发之解析XML格式数据
- iOS中解析 XML / JSON格式讲解
- 解析XML格式数据
- NSXMLParser解析xml格式
- XML格式统一解析
- 解析XML格式数据
- 解析XML格式数据文件
- 解析XML格式数据
- 解析XML格式数据
- xml格式解析
- xml格式解析
- 解析XML格式数据
- xml格式数据解析
- xml格式的解析
- 解析XML格式数据
- 解析 XML格式数据
- iOS 分享功能开发
- 灰度共生矩阵
- iOS--单例(Singleton)
- 随波逐流之IOS 复杂数据的归档和反归档 详解
- Java虚拟机之垃圾回收详解一
- IOS 解析XML格式
- 无题(四):分割字符串(运用二维数组)
- why delete Scene crash!
- 论文返修(response letter)一些很有用的套话
- 关于Trimmomatic
- 优化Myeclipse10 Building Workspace速度慢等
- leetcode 17:Letter Combinations of a Phone Number(15-10-5)
- C#删除和清空文件夹的程序
- unity官方demo学习之Stealth(二十四)敌人AI