tags:

views:

18

answers:

1

how to parse if xml attributes changes...'

for example

<Root>
<child name="", age="",phone="",address=""/>
</Root>

this is my first request from iphone through webserver.... i parsed above xml...

after that when i request the same url .. which is updated now it my xml child tag changes.

<Root>
<child name="",age="",phone="",address="",office="",mobile="",location=""/>
</Root>

extra three attributes added..

what to do with this approach .. any example please send... thanks in advance

A: 

-(void)startParsingForSendFriendRequest:(NSString )userID Friend:(NSString)friendID
{

NSString *urlString =[NSStringstringWithFormat:@"http:///user_id=%@&amp;friend_id=%@",userID,friendID];

////NSLog(@"urlString : %@",urlString);
NSURL *xmlURL = [NSURL URLWithString:urlString];

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] initWithURL:xmlURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30.0]autorelease];

NSURLResponse *returnedResponse = nil;
NSError *returnedError = nil;
NSData *itemData  = [NSURLConnection sendSynchronousRequest:request returningResponse:&returnedResponse error:&returnedError];
//NSString *itemString = [[[NSString alloc] initWithBytes:[itemData bytes] length:[itemData length] encoding:NSUTF8StringEncoding]autorelease];

//NSLog(@"itemString : %@",itemString);


NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:itemData];       
[xmlParser setDelegate:self];

[xmlParser parse];

}

  • (void)parserDidStartDocument:(NSXMLParser *)parser { ////NSLog(@"parserDidStartDocument"); }

  • (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError { ////NSLog(@"parseErrorOccurred"); NSString * errorString = [NSString stringWithFormat:@"Error (Error code %i )", [parseError code]]; UIAlertView * errorAlert = [[UIAlertView alloc] initWithTitle:@"Error loading data" message:errorString delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [errorAlert show]; [errorAlert release]; }

  • (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict { //NSLog(@"didStartElement"); // NSLog(@"elementName : %@",elementName); // NSLog(@"namespaceURI : %@",namespaceURI); // NSLog(@"qualifiedName : %@",qualifiedName); NSLog(@"attributeDict : %@",attributeDict);

    [registerNewArr addObject:attributeDict];

} - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { ////NSLog(@"foundCharacters");

}

  • (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { ////NSLog(@"didEndElement");

} - (void)parserDidEndDocument:(NSXMLParser *)parser { if ([[[registerNewArr objectAtIndex:1]objectForKey:@"Transaction"]isEqualToString:@"loginxml"]) { [(WakeuuupLoginScreenVC *)obj getRegisterResult:registerNewArr]; }

}

  • (void)dealloc { [registerNewArr release]; [super dealloc]; }
GhostRider