这之前要有一个准备工作,除了将解析类导入进来外,还要将一个框架导入进来,框架名叫“libxml2.dylib”,没有这个框架是解析不了的,将这个框架导入进来后还有一个问题,要在“Build Settings” 里面的 “Header Search Paths” 上添加 “/usr/include/libxml2” 并点击后选中后保存一下即可
//先要有xml的文件,然后要得到这个文件的路径,放进NSString对象里
- (NSString *)fileContent
{
//在包里得到这个文件的路径
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"student" ofType:@"txt"];
//将路径转换成UTF8格式放进NSString对象里
NSString *content = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncodingerror:nil];
return content;
}
//解析xml方法实现
- (void)xml
{
//此时解析后的数据都已经放入了doc中
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithXMLString:[self fileContent] options:0error:nil];
//得到根节点
GDataXMLElement *root = [doc rootElement];
//将根节点中的子节点放进数组里
NSArray *allStudent = [root children];
//循环遍历将子节点中的每个元素都读出来
for (GDataXMLElement *element in allStudent) {
GDataXMLElement *name = [[element elementsForName:@"name"] objectAtIndex:0];
GDataXMLElement *age = [[element elementsForName:@"age"] objectAtIndex:0];
GDataXMLElement *sex = [[element elementsForName:@"sex"] objectAtIndex:0];
NSString *nameStr = [name stringValue];
NSString *ageStr = [age stringValue];
NSString *sexStr = [sex stringValue];
NSLog(@"name = %@, age = %@, sex = %@", nameStr, ageStr, sexStr);
}
}
附件为我已经写完的一个XMLDemo 还会出现问题的请看一下吧!