我有一个方法可以读取 xml 文件并将 xml 节点存储在名为 *nodes 的 NSArray 中的某个 XPath 路径中。我想要做的是获取数组中的每个项目并将其添加到一个名为 Category 的核心数据实体,其属性为“name”。
我尝试了许多不同的方法来创建实体,但我不确定有效地做到这一点的正确方法。这是用于创建 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];