iphone XML 解析

//1 [资源下载] 
// 到Google code中下载最新版本的gdata-objectivec-client
 // 具体的链接为 http://code.google.com/p/gdata-objectivec-client/downloads/list?can=1&q=&colspec=Filename+Summary+Uploaded+ReleaseDate+Size+DownloadCount
//2 [文件查找]// 把刚才下载的文件解压后,找到:GDataXMLNode.h GDataXMLNode.m GDataXMLNodeDefines.h 
//3 [文件导入] 
//4 把上述的三个文件导入到你项目中的Class中
//5 [框架导入]
// 导入Apple 自带的XML解析框架 ,libxml2.dylib
//6 [属性修改*关键点]
// Project - Edit Project Settings 
// Linking--Other linker Flags 
// 添加 Other linker Flags 的path = -lxml2
// Search Paths -- Header Search Paths
// 添加path = /usr/include/libxml2
// 还有一步 记得在用的时候导入 GDataXMLNode.h
//代码片段  
/**
 *装载视图数据
 *解析XML数据中的节目名 
 *显示在tableCell中
 **/
-(void) loadData{
	
	//利用HTTPRequest请求Internet上要解析的XML文件 
	
	NSURL *url = [NSURL URLWithString:@"http://192.168.1.112/tsalog/xmls.aspx"]; //请求的URL	
	NSMutableURLRequest* request = [NSMutableURLRequest new];    //创建请求	
	[request setURL:url]; //把URL放在请求中   	
	[request setHTTPMethod:@"GET"]; //请求的方式	
	NSHTTPURLResponse* response;  //响应请求  
	NSData* data = [NSURLConnection sendSynchronousRequest:request    
					
										 returningResponse:&response 
					
													 error:nil]; // 响应的数据传给NSData
	NSString* responseXMLResult = [[NSString alloc] initWithData:data 
														encoding: CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF8)]; // 响应的XML结果存储到string中 
	NSError *error;
	GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithXMLString: responseXMLResult
																options:0 error:&error];    // 把xml结果传给GDataxmldocument进行解析
	if (doc == nil) { return; }  // 判断解析文档是否为空
	NSLog(@"LOG=%@", [[NSString alloc] initWithData:doc.XMLData encoding:NSUTF8StringEncoding]); //日志输出
	NSArray *documentElements = [doc.rootElement nodesForXPath:@"//DocumentElement/tbl_Errors" error:nil];  //xml成员放在数组中
	
	resultArray = [NSMutableArray arrayWithObjects:nil];//初始化数组
	
	for (GDataXMLElement *partyMember in documentElements) {
		
		NSString *_pgmname;// 存储解析后的字符串
		
		// Pgmname  节目名 		
		NSArray *pgmnames = [partyMember elementsForName:@"pgmname"]; // 存储所有的 XML中 <pgmname></pgmname>节点
		if (pgmnames.count > 0) { 
			GDataXMLElement *firstPgmname = (GDataXMLElement *)[pgmnames objectAtIndex:0];
			_pgmname = firstPgmname.stringValue;
		} else continue;
		
		NSLog(@"_pgmname=%@",_pgmname); //输出到控制台
		
		[resultArray addObject:_pgmname]; // 把字符串对象存储到数组中
	}
	[url release]; //释放内存
	
	[doc release];// 释放doc
}

/*
 *初始化 loadData方法 
 * 返回类型  id  任意对象类型  
 **/
-(id)initWithStyle:(UITableViewStyle)style{
	self = [super initWithStyle:style];
	if (self) {
		[self loadData];
	}
	return self;
}

 
 


你可能感兴趣的:(iphone XML 解析)