Swift学习笔记(2)网络数据交换格式(XML,JSON)解析
参考书籍及资源:iOS实战 入门与提高卷 关东升 参考书籍地址
- 用NSXML来解析XML文档
- 用TBXML来解析XML文档
- 用NSJSONSerialization来解析JSON文档
目录
用NSXML来解析XML文档
NSXML是iOS SDK自带的,也是苹果默认的解析框架,框架的核心是NSXMLParser和它的委托协议NSXMLParserDelegate。
示例文档Notes.xml
<?xml version="1.0" encoding="UTF-8"?>
<Notes>
<Note id="1">
<CDate>2014-12-21</CDate>
<Content>早上8点钟到公司</Content>
<UserID>tony</UserID>
</Note>
<Note id="2">
<CDate>2014-12-22</CDate>
<Content>发布iOSBook1</Content>
<UserID>tony</UserID>
</Note>
<Note id="3">
<CDate>2014-12-23</CDate>
<Content>发布iOSBook2</Content>
<UserID>tony</UserID>
</Note>
<Note id="4">
<CDate>2014-12-24</CDate>
<Content>发布iOSBook3</Content>
<UserID>tony</UserID>
</Note>
<Note id="5">
<CDate>2014-12-25</CDate>
<Content>发布2016奥运会应用iPhone版本</Content>
<UserID>tony</UserID>
</Note>
<Note id="6">
<CDate>2014-12-26</CDate>
<Content>发布2016奥运会应用iPad版本</Content>
<UserID>tony</UserID>
</Note>
</Notes>
创建XMLParser类
import Foundation
class XMLParser: NSObject , NSXMLParserDelegate {
private var notes:NSMutableArray! = []
private var currentTagName:String!
func startParse(){
NSLog("start parse")
let path=NSBundle.mainBundle().pathForResource("Notes", ofType: "xml")!
let url=NSURL(fileURLWithPath: path)
//开始解析
let parser=NSXMLParser(contentsOfURL: url)!
parser.delegate=self
parser.parse()
}
//文档开始时触发
func parserDidStartDocument(parser: NSXMLParser) {
self.notes=NSMutableArray