需要从GitHub上下载GDataXML_Node文件,也可以从我上传的资料中下载。
其他操作跟SAX解析一样,详情请查看上一篇文章。
//1.获取文件路径 NSBundle-获取包
NSBundle *bundle = [NSBundlemainBundle];
NSString *path = [bundle pathForResource:@"StudentInfo_XML" ofType:@"txt"];
//1KB = 1024B 1MB = 1024KB 1GB = 1024MB 1TB = 2^10 GB
//1PB = 2^10 TB 1EB = 2^10 PB
//32位操作系统最大容量:X32 = 2^32B = 4GB .
//2.根据文件路径来创建data对象-->data可以存储8EB的容量,最终转换成二进制。
//计算机就是一种电路,只有开和关两种逻辑电路。0-1
NSData *data = [NSDatadataWithContentsOfFile:path];
//3.创建解析对象
GDataXMLDocument *document = [[GDataXMLDocumentalloc]initWithData:dataoptions:0 error:nil];
//4.获取根节点
GDataXMLElement *rootElement = [document rootElement];
//创建数组
_array = [[NSMutableArrayalloc]initWithCapacity:6];
//5.开始解析
for (GDataXMLElement *subElementin rootElement.children) {
//new表示是一个静态方法(也即是类方法)
Student *student = [Studentnew];
for (GDataXMLElement *sunElementin subElement.children) {
[studentsetValue:sunElement.stringValueforKey:sunElement.name];
}
[_arrayaddObject:student];
}
//6.校验一下
for (Student *studentin _array) {
NSLog(@"%@",student);
}