前面通过socket连接服务器以后因为传输的是xml文件所以要根据NSXMLparser 进行
api链接
https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSXMLParser_Class/index.html#//apple_ref/occ/instm/NSXMLParser/initWithStream:
还有可用的第三方xml库
TBXML
http://www.tbxml.co.uk/
AFNetwork 中文教程 用于解析网络上流行的格式,用到的话再深入了解
http://www.tuicool.com/articles/Ifi2eu
//
// XmlParser.swift
// udpSocket
//
// Created by hyshi on 15/3/11.
// Copyright (c) 2015年 hyshi. All rights reserved.
//
import Foundation
class XmlParser : NSObject , NSXMLParserDelegate{
override init(){
super.init()
setupparser()
}
func setupparser(){
var xmlPatch : NSString! = NSString()
var error : NSXMLParserError?
xmlPatch = NSBundle.mainBundle().pathForResource("student", ofType: "xml")
var xmlContent : NSString! = NSString(contentsOfFile: xmlPatch, encoding: NSUTF8StringEncoding, error: nil)
println("\(xmlContent)")
var myParse = NSXMLParser(data: xmlContent.dataUsingEncoding(NSUTF8StringEncoding))
myParse.delegate = self
if(!myParse.parse()){
println("\(myParse.parserError)")
}
}
func parserDidStartDocument(parser: NSXMLParser!) {
println("开始解析xml")
}
func parserDidEndDocument(parser: NSXMLParser!) {
println("解析完毕")
}
private var currentTagName : NSString!
private var itemData : NSMutableArray! = NSMutableArray()
func parser(parser: NSXMLParser!, didStartElement elementName: String!, namespaceURI: String!, qualifiedName qName: String!, attributes attributeDict: [NSObject : AnyObject]!) {
println("uuuuuu")
currentTagName = elementName
if currentTagName.isEqualToString("student"){
var noteid: AnyObject? = attributeDict["id"]
var dict : NSMutableDictionary = NSMutableDictionary()
dict.setValue(noteid, forKey: "id")
itemData.addObject(dict)
}
println("currentTagName ==\(currentTagName)")
}
func parser(parser: NSXMLParser!, foundCharacters string: String!) {
println(string)
}
func parser(parser: NSXMLParser!, didEndElement elementName: String!, namespaceURI: String!, qualifiedName qName: String!) {
println("didend")
}
//获取cdata块数据
func parser(parser: NSXMLParser!, foundCDATA CDATABlock: NSData!) {
println("foundCDATA")
}
}
xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<students>
<student id='1'>
<name>john</name>
<chinese>15</chinese>
<english>356</english>
<math>45</math>
</student>
</students>
自己用swift写的简单的xml