我正在我的应用程序上解析 webService 响应 (XML),我意识到并非所有答案都被解析(我预计至少还有 3 个相同信息的 block ),所以我决定像这样修改我的方法 connectionDidFinishLoading :
-(void) connectionDidFinishLoading:(NSURLConnection *) connection {
NSString *XMLResponse = [[NSString alloc]initWithBytes:[webData mutableBytes] length:[webData length] encoding:NSUTF8StringEncoding];
NSLog(@"xml message: %@, data length: %i", XMLResponse, [webData length]);
if ([XMLResponse hasPrefix:@"[ERR]"]){
[[[UIAlertView alloc]initWithTitle:@"Notification"
message:XMLResponse != nil ? [@"there was an error while trying to load service" stringByAppendingString:XMLResponse]: @"there was an error while trying to load service"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil]show];
_transacWebServCompleto = @"FALSE";
return;
}
xmlParser = [[NSXMLParser alloc] initWithData:webData];
[xmlParser setDelegate:self];
[xmlParser setShouldResolveExternalEntities:YES];
[xmlParser parse];
}
当我运行我的应用程序时,我在输出部分得到这个
xml message: (null), data length: 5516
表格打印正确,但不完整,我的 XML 显示为空,但由于数据长度,它包含数据,任何帮助我都会感激
提前致谢
最佳答案
您的 XML 可能包含特殊字符,例如重音词,请尝试以下操作:
-(void) connectionDidFinishLoading:(NSURLConnection *) connection {
NSString *XMLResponse = [[NSString alloc]initWithBytes:[webData mutableBytes] length:[webData length] encoding:NSISOLatin1StringEncoding];
NSLog(@"xml message: %@, data length: %i", XMLResponse, [webData length]);
if ([XMLResponse hasPrefix:@"[ERR]"]){
[[[UIAlertView alloc]initWithTitle:@"Notification"
message:XMLResponse != nil ? [@"there was an error while trying to load service" stringByAppendingString:XMLResponse]: @"there was an error while trying to load service"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil]show];
_transacWebServCompleto = @"FALSE";
return;
}
xmlParser = [[NSXMLParser alloc] initWithData:[XMLResponse dataUsingEncoding:NSUTF8StringEncoding]];
[xmlParser setDelegate:self];
[xmlParser setShouldResolveExternalEntities:YES];
[xmlParser parse];
}
我所做的就是:
- 获取您的 NSString (XMLResponse) 并将编码更改为 NISOLatin1StringEncoding
- 通过使用 NSString (XMLResponse) 创建一个 NSData 对象来初始化您的 NSXMLParser 对象(解析),但现在使用 NSUTF8StringEncoding 进行编码
尝试一下并告诉我们效果如何!
关于ios - WebService 不完整 Objective-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18346714/