TBXML库的用法
来源:互联网 发布:touchwin编程软件下载 编辑:程序博客网 时间:2024/05/24 07:16
-(id)initWithMgzListXML:(NSString *)xmlString{ self = [super init]; if(self){ self.contentArray = [[NSMutableDictionary alloc] init]; NSString *xml = xmlString; xml =[xml stringByReplacingOccurrencesOfString:@"&" withString:@"&"]; xml =[xml stringByReplacingOccurrencesOfString:@"'" withString:@"'"]; xml =[xml stringByReplacingOccurrencesOfString:@"<" withString:@"<"]; xml =[xml stringByReplacingOccurrencesOfString:@">" withString:@">"]; xml =[xml stringByReplacingOccurrencesOfString:@""" withString:@"\""]; NSLog(@"xml is ------------>%@",xml); mainXMLSource = [[TBXML alloc] initWithXMLString:xml]; TBXMLElement *root = mainXMLSource.rootXMLElement; if(root){ TBXMLElement *contents = [TBXML childElementNamed:@"MagazineList" parentElement:root]; if(contents){ TBXMLElement *content = [TBXML childElementNamed:@"Magazine" parentElement:contents]; NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; while(content){ //解析属性 NSString *idStr = [NSString stringWithString:[TBXML valueOfAttributeNamed:@"Id" forElement:content]]; NSString *titleStr = [TBXML valueOfAttributeNamed:@"Title" forElement:content]; NSString *subTitleStr = [TBXML valueOfAttributeNamed:@"Subtitle" forElement:content]; NSString *categoryIdStr = [TBXML valueOfAttributeNamed:@"CategoryId" forElement:content]; NSString *categoryNameStr = [TBXML valueOfAttributeNamed:@"CategoryName" forElement:content]; [dict setObject:idStr forKey:@"Id"]; [dict setObject:titleStr forKey:@"Title"]; [dict setObject:subTitleStr forKey:@"Subtitle"]; [dict setObject:categoryIdStr forKey:@"CategoryId"]; [dict setObject:categoryNameStr forKey:@"CategoryName"]; //解析元素代码 TBXMLElement *description = [TBXML childElementNamed:@"Description" parentElement:content]; if(description){ NSString *str = [TBXML textForElement:description]; [dict setObject:str forKey:@"Description"]; } TBXMLElement *modifyDate = [TBXML childElementNamed:@"ModifyDate" parentElement:content]; if(modifyDate){ NSString *str = [TBXML textForElement:modifyDate]; [dict setObject:str forKey:@"ModifyDate"]; } NSMutableArray *list = [self.contentArray objectForKey:categoryIdStr]; if(list == nil || [list count]==0){ list = [NSMutableArray arrayWithCapacity:1]; } [list addObject:dict]; [self.contentArray setObject:list forKey:categoryIdStr]; //给下一个元素赋值,配合WHILE循环使用 content = [TBXML nextSiblingNamed:@"Magazine" searchFromElement:contents]; } // } } } return self;}