本片文章我们来介绍xml文件的另一种解析方法dom解析,先读取完整的xml文档,然后在内存中形成数的结构,在根据节点关系去获取数据,这里我们使用google提供的第三方类GDataXMLNode来解析,速度要比NSXMLParser的快.
首先把GDataXMLNode的两个文件拖入到我们的工程里去.
GDataXMLNode需要先配置一下,方法请参考//www.greatytc.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);
}