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;
}
對不起醜陋格式化,我試過,但我不能夠正確的格式 – pankaj 2010-04-08 13:29:22
這裏是你如何格式化代碼HTTP: //meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks/22189#22189 – 2010-04-08 13:34:42
有人可以幫助我,我很困難...... – pankaj 2010-04-09 06:35:31