2012-02-07 4 views
1

다음 메소드가 있습니다.이 메소드를 호출하는 방법이 하나 더 있지만 아직 행운이 없습니다.HTTP 응답에서 XML 가져 오기 및 읽기

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

     if ([elementName isEqualToString:@"isphone-config"]) { 
      Pusername = [attributeDict valueForKey:@"authentication_username"];  
      Ppassword = [attributeDict valueForKey:@"authentication_password"]; 
      Pidentity = [attributeDict valueForKey:@"sip_identity"]; 
      Pdomain = [attributeDict valueForKey:@"domain"]; 
      Pprotocol = [attributeDict valueForKey:@"protocol"]; 
      Pudpport = [attributeDict valueForKey:@"registrar_port"]; 
      Ptcpport = [attributeDict valueForKey:@"listening_port"]; 

      NSLog(@"Title: %@, ID: %@", Pusername, Ppassword); 
     } 
    } 
} 

그리고 나는 다음과 같은 방법에서 호출하고 ..

NSString* username = [[NSUserDefaults standardUserDefaults] stringForKey:@"username_preference"]; 
NSString* accountPassword = [[NSUserDefaults standardUserDefaults] stringForKey:@"password_preference"]; 
NSString* urlString = [NSString stringWithFormat:@"https://%@:%@@test.com/test.php",username,accountPassword]; 
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]]; 
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 

parser = [[NSXMLParser alloc] initWithData: response]; 

NSLog(@"at parser %@", parser); 

[parser setDelegate:self]; 

내가 파서를 호출하고있는 곳에서 코드의 마지막 줄에 문제가 있어요. 나는이 라인이 메소드 파서 (method parser)를 호출 할 것이라고 생각한다. 가져 오기, 포함 또는 구현해야하는 파일, 인터페이스 및 클래스를 알지 못합니다.

답변

1

NSXMLParser를 사용한 XML 구문 분석은 훨씬 어렵습니다. Apple의 "지진"예제를 확인하십시오.

대신 다른 XML 파서를 사용하는 것이 좋습니다. 예를 들어, this one를 들어 :

Also, good article about how to choose parser.

http://www.raywenderlich.com/725/how-to-read-and-write-xml-documents-with-gdataxml

+1

이 방법 NSXMLParser보다 훨씬 쉽습니다 ... 나는 NSXMLParser에 많은 시간을 소비하고 운이 없었다! – AAB