[英]NSXML parser : problem in parsing xml data
我正在使用iPhone应用程序,在其中使用php webservice从服务器获取数据,并且需要在表视图中显示记录。 一切进展顺利,但是今天我编译了代码并在模拟器中运行,发现从服务器以xml格式接收数据时,解析器未对其进行解析。 我检查xml中的标签名称并解析委托方法。
这是xml数据和标签名称。
根>
行>
帖子ID> 6BF718DD-E91B-4F8E-8EDB-520D66E02D60 / PostID>
PostDate> 2010年12月1日晚上10:31 / PostDate>
发布>在我的网站上继续/发布>
名字>测试/名字>
姓氏>团队/姓氏>
ProfileImage> http://mywebsite.com/upload_pic/thumbnail_%7B94808EC1-06DF-4AC2-B1C3-21DC5108695C%7D.jpg / ProfileImage>
社区>公园/社区> NoOfComments> 0 / NoOfComments> / ROW / ROOT
静态NSString * kXMLtagName_ROOT = @“ ROOT”;
静态NSString * kXMLtagName_Row = @“ ROW”;
静态NSString * kXMLtagName_PostID = @“ PostID”;
静态NSString * kXMLtagName_PostDate = @“ PostDate”;
静态NSString * kXMLtagName_Post = @“ Post”;
静态NSString * kXMLtagName_FirstName = @“ FirstName”;
静态NSString * kXMLtagName_LastName = @“ LastName”;
静态NSString * kXMLtagName_ProfileImage = @“ ProfileImage”;
静态NSString * kXMLtagName_Community = @“ Community”;
静态NSString * kXMLtagName_NoOfComments = @“ NoOfComments”;
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
如果([[currentElement isEqualToString:kXMLtagName_PostID]){
NSLog(@“ postid =%@”,string); if(string)// [dictCommunityInfo setObject:string forKey:@“ PostID”]; [arrMainPostInfo addObject:string];
}
否则,如果([[currentElement isEqualToString:kXMLtagName_PostDate]){
NSLog(@“ PostDate =%@”,string); if(string)[arrMainPostInfo addObject:string];
}
否则,如果([[currentElement isEqualToString:kXMLtagName_Post]){
NSLog(@“发布的数据=%@”,字符串); // if(string)[arrMainPostInfo addObject:string];
}
否则,如果([currentElement isEqualToString:kXMLtagName_FirstName]){NSLog(@“ fName =%@”,string); if(string)[arrMainPostInfo addObject:string];
}
否则,如果([[currentElement isEqualToString:kXMLtagName_LastName]){
NSLog(@“ lName =%@”,string); if(string)[arrMainPostInfo addObject:string]; }
否则,如果([[currentElement isEqualToString:kXMLtagName_ProfileImage]){
NSLog(@“ ProfileImageUrl =%@”,string); if(string)[arrMainPostInfo addObject:string]; }
否则,如果([[currentElement isEqualToString:kXMLtagName_Community]){
NSLog(@“ Community =%@”,string); if(string)[arrMainPostInfo addObject:string]; }
否则,如果([[currentElement isEqualToString:kXMLtagName_CommentID]){
NSLog(@“ CommentID =%@”,string); if(string)[dictComentsInfo setObject:string forKey:@“ CommentID”];
}
否则,如果([[currentElement isEqualToString:kXMLtagName_CommentPostDate]){
NSLog(@“ CommentPostDate =%@”,string); if(string)[dictComentsInfo setObject:string forKey:@“ CommentPostDate”];
}
否则,如果([[currentElement isEqualToString:kXMLtagName_CommentPost]){
NSLog(@“ CommentPost data =%@”,string); if(string)[dictComentsInfo setObject:string forKey:@“ CommentPost”];
}
否则,如果([currentElement isEqualToString:kXMLtagName_CommentFirstName]){NSLog(@“ CommentFirstName =%@”,string); if(string)[dictComentsInfo setObject:string forKey:@“ CommentFirstName”];
}
否则,如果([[currentElement isEqualToString:kXMLtagName_CommentLastName]){
NSLog(@“ CommentLastName =%@”,string); if(string)[dictComentsInfo setObject:string forKey:@“ CommentLastName”]; }
否则,如果([[currentElement isEqualToString:kXMLtagName_ComentProfileImage]){
NSLog(@“ CommentProfileImage =%@”,string); if(string)[dictComentsInfo setObject:string forKey:@“ CommentProfileImage”]; }
否则,如果([[currentElement isEqualToString:kXMLtagName_UserCommunity]){
NSLog(@“ CommentCommunity =%@”,string); if(string)[dictComentsInfo setObject:string forKey:@“ CommentCommunity”]; }
}
解析器仅检查以下三个标签,并保留其他所有标签
如果([[currentElement isEqualToString:kXMLtagName_PostID]){
NSLog(@“ postid =%@”,string); if(string)// [dictCommunityInfo setObject:string forKey:@“ PostID”]; [arrMainPostInfo addObject:string];
}
否则,如果([[currentElement isEqualToString:kXMLtagName_PostDate]){
NSLog(@“ PostDate =%@”,string); if(string)[arrMainPostInfo addObject:string];
}
否则,如果([[currentElement isEqualToString:kXMLtagName_Post]){
NSLog(@“发布的数据=%@”,字符串); // if(string)[arrMainPostInfo addObject:string];
}
关于这个的任何想法,我都在使用xcode 3.2.1,即使我在设备3gs上也一样。 在今天重新检查Web服务和xml标记名称之前,我感到所有代码都正常。 请帮忙
谢谢,
我有解决办法。 实际上,在()中发现了一个特殊字符,这就是xml解析器无法解析的原因,而忽略了其他标记。
我更改了角色,一切正常。
谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.