2012-03-17 3 views
0

xml 파싱을 처음 사용합니다. 나는 다음과 같은 XML을 가지고있다XML을 XML로 파싱하고 NSMutableArray에 값을 추가하는 중

<myMainList> 
      <mySubList> 
       <edited>true</edited> 
       <mySharedNumber>W59QYBZKJ4</mySharedNumber> 
      </mySubList> 
      <mySubList> 
       <edited>false</edited> 
       <mySharedNumber>TOW4KLP9WD</mySharedNumber> 
      </mySubList> 
      <mySubList> 
       <edited>true</edited> 
       <mySharedNumber>XH8JDIZA64</mySharedNumber> 
      </mySubList> 
      <mySubList> 
       <edited>false</edited> 
       <mySharedNumber>V2YOHSNODT</mySharedNumber> 
      </mySubList> 
    </myMainList> 

나는 나의 질문을 편집했다.

전체 XML을 반복하고 내 배열에 값을 추가하는 것에 익숙하지 않습니다. 누군가 내 배열에 4 sharedNumberList 값을 어떻게 추가 할 수 있는지 보여 줄 수 있습니까?

편집 :

GDataXMLElement *node; 

답변

1
NSArray * array = [node nodesForXPath:@"//return/myMainList/mySubList" error:nil]; 
      NSLog(@"count :%d",[array count]); 
      int sharedContacts = [array count]; 

      NSMutableArray *mySharedListArray = [[NSMutableArray alloc]init]; 


     for(int i = 1; i<= sharedContacts; i++){ 
       NSString *xmlDataFetcher = [NSString stringWithFormat:@"//return/myMainList/mySubList[%d]",i ]; 
       NSString *parsedNumbers = [node nodeStringForXPath:[xmlDataFetcher stringByAppendingString:@"/mySharedNumber"]]; 
       NSString *parsedEdit = [node nodeStringForXPath:[xmlDataFetcher stringByAppendingString:@"/edited"]]; 
       NSLog(@"Parsed Edited %@", [node nodeStringForXPath:[xmlDataFetcher stringByAppendingString:@"/edited"]]); 
       NSLog(@"Parsed sharedNumber %@", [node nodeStringForXPath:[xmlDataFetcher stringByAppendingString:@"/mySharedNumber"]]); 
       NSString *arrayEntry = [NSString stringWithFormat:@"%@%@", parsedNumbers, parsedEdit];; 

       [mySharedListArray addObject:arrayEntry]; 
      } 
      NSLog(@"Array entry %@", mySharedListArray); 

내가 많은의를 추가 한 시도 XPath 쿼리에서 배열을 반환하지 않은 NSLog 대답에, 당신이 원하는대로 그것을 기록 할 수 있도록

0

나는 이것이 아마이 때문에이 대신

[mySharedListArray addObjectsFromArray:[node nodesForXPath:@"//return/MyList" error:nil]]; 
+0

'호환되지 않는 포인터 유형 보내기'N SString * '매개 변수를'NSArray * '로 설정하십시오. –

+0

@JeanPaulScott 제 편집을 보시기 바랍니다. 이것은 확실하게 작동합니다. –

+0

'nodesForXPath' 메소드는 또한'NSError **'파라미터를 가지고 있습니다. –

관련 문제