target Header Search Paths contain
/usr/include/libxml2
Other Linker Flags contain
-lxml2
如果工程使用ARC,还要设置ARC和MRC兼容。
//解析XML //DOM 树型解析(GData来自谷歌的解析工具,推荐使用)数据少的时候使用 // NSLog(@"%@",self.dataArray); self.dataArray=[NSMutableArray array]; NSString * filePath=[[NSBundle mainBundle]pathForResource:@"data_XML1" ofType:@"txt"]; //data NSData * data=[NSData dataWithContentsOfFile:filePath]; //将文件内容读取到document对象中--(树) GDataXMLDocument *document=[[GDataXMLDocument alloc]initWithData:data options:0 error:nil]; //获取根节点 GDataXMLElement *rootElement=document.rootElement; //第1种 data_XML1.txt情况 //遍历子节点 for (GDataXMLElement *e in rootElement.children) { //继续遍历 //model对象保存值 Message *m=[[Message alloc]init]; for (GDataXMLElement *e1 in e.children) {[m setValue:e1.stringValue forKey:e1.name]; } [self.dataArray addObject:m]; } //第2种 self.dataArray2=[NSMutableArray array]; NSString * filePath2=[[NSBundle mainBundle]pathForResource:@"data_XML2" ofType:@"txt"]; //data NSData * data2=[NSData dataWithContentsOfFile:filePath2]; //将文件内容读取到document对象中--(树) GDataXMLDocument *document2=[[GDataXMLDocument alloc]initWithData:data2 options:0 error:nil]; //获取根节点 GDataXMLElement *rootElement2=document2.rootElement; for (GDataXMLElement * e in rootElement2.children) { //NSLog(@"%@",e.attributes);//e.attributes //所有的属性都被放到一个数组中,是GDataXMLNode类型 //for (GDataXMLNode *d in e.attributes) //{NSLog(@"%@,%@",d.name,d.stringValue); } Message * m=[[Message alloc]init]; for (GDataXMLNode *d in e.attributes) {[m setValue:d.stringValue forKey:d.name];} //存入数组 [self.dataArray2 addObject:m]; } //显示解析得到的文档 NSLog(@"第一种"); for (Message *m in self.dataArray) { NSLog(@"sender:%@",m.sender); NSLog(@"receiver:%@",m.receiver); NSLog(@"content:%@",m.content); NSLog(@"date:%@",m.date); } //显示解析得到的文档 NSLog(@"第二种"); for (Message *m in self.dataArray2) { NSLog(@"sender:%@",m.sender); NSLog(@"receiver:%@",m.receiver); NSLog(@"content:%@",m.content); NSLog(@"date:%@",m.date); }
原文:http://www.cnblogs.com/nathan1987/p/4893062.html