2012-01-11 2 views
0

내 서버에있는 XML 파일에서 일부 데이터를 받고 있어요에 바르, 여기에 파일의 구문 분석 : 당신이 알 수 있듯이디스플레이 UILabels

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

    if ([elementName isEqualToString:@"ipayregs"]) { 

     msgAdded = [[attributeDict objectForKey:@"added"] retain]; 
     msgId = [[attributeDict objectForKey:@"id"] intValue]; 

     msgNome  = [[NSMutableString alloc] init]; 
     msgName  = [[NSMutableString alloc] init]; 
     msgMatricula = [[NSMutableString alloc] init]; 
     msgSenderCode = [[NSMutableString alloc] init]; 

     inNome  = NO; 
     inName  = NO; 
     inMatricula = NO; 
     inSenderCode = NO; 


    } 

    if ([elementName isEqualToString:@"nome"])  { inNome = YES; } 
    if ([elementName isEqualToString:@"nome"])  { inName = YES; } 
    if ([elementName isEqualToString:@"matricula"]) { inMatricula = YES; } 
    if ([elementName isEqualToString:@"sendercode"]) { inSenderCode = YES; } 


} 
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { 

    if (inNome)  { [msgNome appendString:string]; } 
    if (inName)  { [msgName appendString:string]; } 
    if (inMatricula) { [msgMatricula appendString:string]; } 
    if (inSenderCode) { [msgSenderCode appendString:string]; } 

} 
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { 

    if ([elementName isEqualToString:@"ipayregs"]) { 

     [messages addObject:[NSDictionary dictionaryWithObjectsAndKeys:msgAdded,@"added",msgNome,@"nome",msgMatricula,@"matricula",msgSenderCode,@"sendercode",msgName,@"name",nil]]; 

     [[messages reverseObjectEnumerator] allObjects]; 

     lastId = msgId; 

     [msgAdded release]; 
     [msgNome release]; 
     [msgName release]; 
     [msgMatricula release]; 
     [msgSenderCode release]; 

    } 

    if ([elementName isEqualToString:@"nome"]  ) { inNome = NO;} 
    if ([elementName isEqualToString:@"name"]  ) { inName = NO;} 
    if ([elementName isEqualToString:@"matricula"] ) { inMatricula = NO;} 
    if ([elementName isEqualToString:@"sendercode"]) { inSenderCode = NO;} 
} 

이 다운로드 한 데이터 (바르에 저장됩니다 @ " nome ", @"matricula "..). 그러나 어떻게 UILabels에 값을 표시 할 수 있습니까? label.text = @ "nome"|?

답변

2

실제로 데이터가 msgNome에 저장되는 것처럼 보입니다. @ "nome"은 인스턴스 변수가 아닌 문자열 표현식입니다. 그래서, label.text = msgNome;

또한, 당신은해야한다 : 대신 모든 여분의 if

inNome = [elementName isEqualToString:@"nome"]; 

합니다.

+0

그냥 작동하지 않습니다. 다른 방법을 알고 계세요? – Mateus

+0

xml 구문 분석이 완료된 후 레이블 텍스트 *를 할당 하시겠습니까? – aaronblohowiak

+0

예. 할당하고 있습니다! – Mateus