2010-10-22 32 views
0

如何在XML屬性變化解析......」有任何動態XML解析

例如

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

這是我從網絡服務器通過第一iphone要求....我解析上面的XML ...

之後,當我請求相同的網址..這是現在更新它我的XML子標籤更改。

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

額外的三個屬性加..

做什麼用這種方法..任何例子請發...在此先感謝

回答

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

    NSString *urlString =[NSStringstringWithFormat:@"http:///user_id=%@&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]; 
}