2010-04-08 58 views
1

您好,我正在尝试从Web服务返回的xml的所有节点中获取值。但调试器只能在didStartElement api上运行,它也应该转到其他apis上,但仅在该点终止,它不会进一步读取它。代码:xml解析器无法读取xml的所有节点

-(void)parseData{ 
NuanceAppDelegate *appDel = (NuanceAppDelegate *)[[UIApplication sharedApplication] delegate]; 
NSString *url = @"http://cmweb.bpomatrix.net/SmartPhoneService.svc/login/"; 
url = [[[url stringByAppendingString:UserName] stringByAppendingString:@"/"] stringByAppendingString:Password]; 
url = [[url stringByAppendingString:@"/"] stringByAppendingString:appDel.CPAID]; 
NSLog(@"log: @%",url); 
NSURL *loginURL = [NSURL URLWithString:url]; 

NSXMLParser *home_Parser = [[NSXMLParser alloc] initWithContentsOfURL:loginURL]; 
[home_Parser setDelegate:self]; 
dict = [[NSMutableDictionary alloc] init]; 
[home_Parser parse]; 

}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict 

{

if([elementName isEqualToString:@"Address"]) 
    addressFound = TRUE; 
if([elementName isEqualToString:@"Name"]) 
    nameFound = TRUE; 
if([elementName isEqualToString:@"LoyaltyNum"]) 
    loyaltyNumFound = TRUE; 
if([elementName isEqualToString:@"City"]) 
    cityFound = TRUE; 
if([elementName isEqualToString:@"Province"]) 
    proFound = TRUE; 
if([elementName isEqualToString:@"Zip"]) 
    zipFound = TRUE; 
//NSLog(@"Response %@",responseFound); 

}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{ 
if(addressFound) 
{ 
    [dict setObject:string forKey:@"address"]; 
    addressFound = FALSE; 
} 
else if(nameFound) 
{ 
    [dict setObject:string forKey:@"name"]; 
    nameFound = FALSE; 
} 
else if(loyaltyNumFound) 
{ 
    [dict setObject:string forKey:@"loyaltyNum"]; 
    loyaltyNumFound = FALSE; 
} 
else if(cityFound) 
{ 
    [dict setObject:string forKey:@"city"]; 
    cityFound = FALSE; 
} 
else if(proFound) 
{ 
    [dict setObject:string forKey:@"province"]; 
    proFound = FALSE; 
} 
else if(zipFound) 
{ 
    [dict setObject:string forKey:@"zip"]; 
    zipFound = FALSE; 
} 

}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
    { 
     if([elementName isEqualToString:@"clsUserProfile"]) 
     { 
      [self parsingOver]; 
     } 
    } 

    - (void)parsingOver 
    { 
     NuanceAppDelegate *appDel = (NuanceAppDelegate *)[[UIApplication sharedApplication] delegate]; 
     appDel.dictProfile = dict; 
    } 
+0

对不起丑陋格式化,我试过,但我不能够正确的格式 – pankaj 2010-04-08 13:29:22

+0

这里是你如何格式化代码HTTP: //meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks/22189#22189 – 2010-04-08 13:34:42

+0

有人可以帮助我,我很困难...... – pankaj 2010-04-09 06:35:31

回答

0

发现我的错误,是一个愚蠢的一个,我是不是handelling正确调试