NSData *xmlData = [[NSData alloc]initWithContentsOfFile:[NSString stringWithFormat:@"%@/People.xml",[[NSBundle mainBundle] resourcePath]]]; //2.將xmlData轉化成xml文檔 GDataXMLDocument *xmlDocument = [[GDataXMLDocument alloc]initWithData:xmlData options:0 error:nil]; //3.得到節點 GDataXMLElement *rootElement = xmlDocument.rootElement; //4.得到子節點 /*NSArray *elementArray = rootElement.children; //得到classone節點 GDataXMLElement *classoneElement = [elementArray firstObject]; for(GDataXMLElement *element in classoneElement.children) { //得到當前節點的文本值 NSLog(@"%@",element.stringValue); if (element.children.count>0) { GDataXMLElement *infoElement = [element.children lastObject]; //獲得節點的所有屬性和屬性值 NSArray *attArray = infoElement.attributes; for (GDataXMLElement *attElement in attArray) { //得到屬性名和屬性值 NSLog(@"%@-%@",attElement.name,attElement.stringValue); } } } */ //模糊查找 NSArray *eArray = [rootElement nodesForXPath:@"http://info" error:nil]; NSLog(@"%@",eArray);
iPhone開發 解析xml NSData
具體內容請看下文代碼分析:
xml字符串為:<users><user name="hoge" age="20" /><user name="fuga" age="30" /></users> //解析按鈕事件-(IBAction)btnXml{ NSString* str= [uitextview1 text]; //string轉成data NSData *xmlData = [str dataUsingEncoding: NSUTF8StringEncoding]; //對xml進行解析需要使用NSXMLParser類,首先聲明一個NSXMLParser對象 //開始解析 NSXMLParser* xmlRead = [[NSXMLParser alloc] initWithData:xmlData];//初始化NSXMLParser對象 [xmlRead setDelegate:self];//設置NSXMLParser對象的解析方法代理 [xmlRead parse];//調用代理解析NSXMLParser對象,看解析是否成功 } //解析器,從兩個結點之間讀取內容- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { //NSLog(@"%@",string);} //獲得結點結尾的值- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { //NSLog(@"%@",elementName);}//獲得結點頭的值- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { //NSLog(@"%@",elementName); if([elementName isEqualToString: @"user"]) { NSString* strName=[attributeDict valueForKey:@"name"]; NSString* strAge=[attributeDict valueForKey:@"age"]; NSString* strUser=uitextview2.text; strUser=[strUser stringByAppendingFormat:@"姓名:%@,年齡:%@/n",strName,strAge]; [uitextview2 setText:strUser]; //NSLog(@"姓名:%@,年齡:%@", strName,strAge); }}
新聞熱點
疑難解答