xml数据的解析
2015-11-21 20:14
369 查看
首先创建一个xml文件
随后再代码中 创建xml的解析对象 通知其代理 随后开始解析
查找到的信息如下所示
age:15
current Node : Optional("person") value is ZhangSan
person
age:2
current Node : Optional("person") value is jikexueyuan
a
b
c
data
person
age:15
current Node : Optional("person") value is ZhangSan
person
age:2
current Node : Optional("person") value is jikexueyuan
a
b
c
<data> <person age = "15">ZhangSan</person> <person age = "2">jikexueyuan</person> <a> <b> <c> </c> </b> </a> </data>将xml数据文件导入到文件列表中
随后再代码中 创建xml的解析对象 通知其代理 随后开始解析
import UIKit class ViewController: UIViewController,NSXMLParserDelegate{ override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. //创建xml的解析对象 var parser = NSXMLParser(contentsOfURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("data", ofType: "xml")!)) //通知代理 parser?.delegate = self //开始解析 parser?.parse() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } //实现代理的方法 来解析数据 var currentNodeName:String? func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) { //获得名字 print(elementName) currentNodeName = elementName //获得属性 if elementName == "person"{ //为了以防有的对象没有age的属性 则要对其进行判断 有没有age的属性 if let age = attributeDict["age"] { print("age:\(age)") } } } //查找当前内容 func parser(parser: NSXMLParser, foundCharacters string: String) { //避免空格符号的出现 var str = string.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()) if str != "" { print("current Node : \(currentNodeName) value is \(str)") } } }
查找到的信息如下所示
age:15
current Node : Optional("person") value is ZhangSan
person
age:2
current Node : Optional("person") value is jikexueyuan
a
b
c
data
person
age:15
current Node : Optional("person") value is ZhangSan
person
age:2
current Node : Optional("person") value is jikexueyuan
a
b
c
相关文章推荐
- iOS 获得版本号 区分BundleVersion和BundleShortVersionString
- iOS攻略之动态添加tableView的行
- Objective-C编码规范:26个方面解决iOS开发问题
- GSM系统消息
- jquery each跳出循环的问题
- UISlider
- Android 使用百度LBS SDK(六)轨迹回放
- 保角映射
- Cookie与Session
- 我的Bit路-C语言实现顺序
- AngularJs $http 请求服务
- C++程序员必须知道的5大内存区域
- Android逆向之旅---基于对so中的函数加密技术实现so加固
- 负载均衡
- Socket简单使用
- while练习*登陆系统*大小写转换*None与“”
- 欢迎使用CSDN-markdown编辑器
- 就业分析(引用他人观点)
- 二叉树重建(一)
- Eclipse自动提示