2012-03-17 6 views
0

私はxml解析を初めて行っています。私は以下のXMLを持っていますXmlのIphoneでの解析と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); 

代わりにこれを試してみてください、これを行っていませんNSLogが答えているので、あなたが望むようにログすることができます

0

私はおそらくこれはXPathクエリから配列を返すので、私は多くのを追加した

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

これは '互換性のないポインタ型送信 'N SString * 'をNSArray *型のパラメータに設定します。 –

+0

@JeanPaulScott私の編集を見てください...これは確実に機能します。 –

+0

'nodesForXPath'メソッドにも' NSError ** 'パラメータがあります。 –