代码语言:javascript复制
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.
}
} </pre>