本片文章我們來介紹xml文件的另一種解析方法dom解析,先讀取完整的xml文檔,然后在內存中形成數的結構,在根據節點關系去獲取數據,這里我們使用google提供的第三方類GDataXMLNode來解析,速度要比NSXMLParser的快.
首先把GDataXMLNode的兩個文件拖入到我們的工程里去.
屏幕快照 2016-02-07 下午1.58.08.png
GDataXMLNode需要先配置一下,方法請參考http://www.lxweimin.com/p/7404ea214f43
配置完后我們就可以解析了
第一步:獲取路徑,轉換data對象
NSString *string = [[NSBundle mainBundle]pathForResource:
@"person" ofType:@"txt"];
NSData *data = [NSData dataWithContentsOfFile:string];
第二步:創建文檔對象,此時文檔里面存放的是樹狀結構的數據,并創建error對象
NSError *error;
GDataXMLDocument *doucument = [[GDataXMLDocument
alloc]initWithData:data options:0 error:&error];
獲取文檔的根節點
GDataXMLElement *rootElement = doucument.rootElement;
給目標數組開辟空間
self.dataArray = [NSMutableArray arrayWithCapacity:3];
解析
for (GDataXMLElement *subElement in rootElement.children) {
Student *student = [Student new];
for (GDataXMLElement *contentElement in subElement.children) {
[student setValue:contentElement.stringValue
forKey:contentElement.name];
}
[_dataArray addObject:student];
}
```
打印 驗證結果
for (Student *stu in _dataArray) {
NSLog(@"%@",stu);
}