2010-04-08 115 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正確調試