搜索热词
正常解析完毕之后会直接走parserDidEndDocument这个方法
解析出错之后会执行一个相应的方法,- (void)parser:(NSXMLParser*)parser parseErrorOccurred:(NSError*)parseError,执行完毕此方法后.会根据解析出错的地方去执行方法parserDidEndDocument(有时候会执行,有时候不会执行)
- (void)viewDidLoad
{
[superviewDidLoad];
NSString*str = [selfloadTextXml];
NSData*data = [strdataUsingEncoding:NSUTF8StringEncoding];
NSXMLParser*parser = [[NSXMLParseralloc]initWithData:data];
[parser setDelegate:self];
[parsersetShouldProcessNamespaces:NO];
[parsersetShouldReportNamespacePrefixes:NO];
[parsersetShouldResolveExternalEntities:NO];
[parser parse];
[parser release];
}
- (NSString *)loadTextXml
{
NSArray*paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString*filePath = [[pathsobjectAtIndex:0]stringByAppendingPathComponent:@"CdnSwitchDomain.xml"];
NSFileManager*fileManager = [NSFileManagerdefaultManager];
if([fileManager fileExistsAtPath:filePath])
{
return[NSStringstringWithContentsOfFile:filePathencoding:NSUTF8StringEncodingerror:nil];
}
return nil;
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if([elementName isEqualToString:@"info"])
{
NSLog(@"parse info");
}
if([elementName isEqualToString:@"newSplashURL"])
{
NSLog(@"parse newSplashURL");
}
if([elementName isEqualToString:@"androidSplash"])
{
NSLog(@"parse androidSplash");
}
if([elementName isEqualToString:@"weatherDomains"])
{
NSLog(@"parse weatherDomains");
}
}
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
NSLog(@"end");
}
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
{
NSLog(@"AN error occuse");
}
总结
以上是编程之家为你收集整理的XML解析出错处理全部内容,希望文章能够帮你解决XML解析出错处理所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。