私は、xml ファイルを読み取り、*nodes と呼ばれる NSArray の特定の XPath パスに xml ノードを格納するメソッドを持っています。私がやりたいことは、配列内の各アイテムを取得し、「名前」の属性を持つカテゴリと呼ばれるコア データ エンティティに追加することです。
エンティティを作成するさまざまな方法を試しましたが、これを効果的に行う正しい方法がわかりません。これは NSArray を作成するために使用されるコードですが、これを実装する方法についてのアイデアはありますか? (NSError は無視してください。最終バージョンで修正します)
- (IBAction)readCategories:(id)sender
{
NSString *xmlString = [resultView string];
NSData *xmlData = [xmlString dataUsingEncoding: NSASCIIStringEncoding];
NSXMLDocument *xmlDoc = [[NSXMLDocument alloc] initWithData:xmlData options:nil error:nil];
//XPath
NSError *err=nil;
NSArray *nodes = [xmlDoc nodesForXPath:@"//member[name='description']/value/string" error:&err];
}
編集 - 私のループコード
NSArray *nodes = [xmlDoc nodesForXPath:@"//member[name='description']/value/string" error:&err];
int arrayCount = [nodes count];
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSXMLElement *categoryEl;
NSString *new = [catArrayController newObject];
int i;
for (i = 0; i < arrayCount; i++)
{
[categoryEl = [nodes objectAtIndex:i]];
[new setValue:[categoryEl stringValue] forKey:@"name"];
[catArrayController addObject:new];
}
[pool release];