2012-09-04 3 views
0

XML 파일에서 데이터를 가져 오는 데 NSXMLParserDelegate 메서드를 사용하고 있지만 원하는 데이터를 가져올 수 없습니다. XML 파일과 같은 것입니다 :복수 키를 선택하여 Xcode NSXMLParser 데이터

<faces> 
    <bounds x='70' y='250' width='438' height='438'/> 
    <right-eye x='208' y='424'/> 
    <left-eye x='368' y='426'/> 
    <features s-avg='0.82' s-min='0.51' s-max='0.92'> 
    <point id='PR' x='223' y='425' s='0.76'/> 
    <point id='PL' x='362' y='424' s='0.91'/> 
</faces> 
내가 속성 x, y에 대한 값을 얻으려면이 파일에서

, 만 "PR" 동일한 속성 id에 포인트 요소 s. 값을 기록하면 x=223이 표시됩니다.

이 내 구문 분석 과정입니다 : 모든 요소에 대한 x, ys

X=223 X=362 Y=425 Y=424 S=0.76 S=0.91 

값 :

-(void) parser:(NSXMLParser *) parser didStartElement:(NSString *) elementName namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *) qName attributes:(NSDictionary *) attributeDict { 
    if ([elementName isEqualToString:@"point"]) 
    { 
     NSString *idvalue = [attributeDict objectForKey:@"id"]; 
     if ([email protected]"PR") 
     { 
      NSString *xvalue = [attributeDict objectForKey:@"x"]; 
      NSLog(@"%@",xvalue); 
      NSString *yvalue = [attributeDict objectForKey:@"y"]; 
      NSLog(@"%@",yvalue); 
      NSString *svalue = [attributeDict objectForKey:@"s"]; 
      NSLog(@"%@",svalue); 
     } 
    } 

내가 좋아하는 로그를 얻을 것이다. 속성 ID = "PR"인 요소에 대해서만 값을 가져 오는 방법은 무엇입니까? 나는 누군가가 나에게 이유를 줄 수 있기를 바라고있다. 그렇지 않으면 마침내이 문제를 해결하기위한 방향으로 나를 가리킬 수 있다면, 뒤에있는 진정한 고통이되기 때문이다.

+1

'하려고하면 ([isEqualToString idvalue : "PR"@])

는 다음과 같이 사용' –

답변

0

기본적으로 Matthias는 의견에서 지적했듯이 NSString-isEqualToString 메서드를 사용하려고합니다. 그 이유는 [email protected]"PR"이 두 개의 NSString 포인터의 숫자 값을 실제로 비교하는 것입니다. 이 아닙니다. -isEqualToString 메서드는 실제로 상기 포인터에 의해 참조 된 문자열의 내용을 비교합니다.

NSString *idvalue = [attributeDict objectForKey:@"id"]; 
if ([idvalue isEqualToString:@"PR"]) 
{ 
    NSString *xvalue = [attributeDict objectForKey:@"x"]; 
    NSLog(@"%@",xvalue); 
    NSString *yvalue = [attributeDict objectForKey:@"y"]; 
    NSLog(@"%@",yvalue); 
    NSString *svalue = [attributeDict objectForKey:@"s"]; 
    NSLog(@"%@",svalue); 
} 
+0

감사합니다 순전히! 이것은 완벽하게 작동했습니다! – user1647252

+0

@ user1647252 기꺼이 도와 드리겠습니다. 이 답이 귀하의 질문에 대한 대답이라면, 동의라고 표시해야합니다. – NJones