繁体   English   中英

NSXML解析器:解析xml数据时出现问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM