Objective c XML解析-使用XML和XPath将属性分组到nsdictionary中

Objective c XML解析-使用XML和XPath将属性分组到nsdictionary中,objective-c,cocoa,core-data,xpath,kissxml,Objective C,Cocoa,Core Data,Xpath,Kissxml,我尝试的目标是解析这个xml文档,并最终将其转换为核心数据 但我遇到麻烦的是 <rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel"> <row typeID="13279" skillLevel="3" /> <row typeID="3402" skillLevel="4" /> </rowset> }

我尝试的目标是解析这个xml文档,并最终将其转换为核心数据

但我遇到麻烦的是

<rowset name="requiredSkills" key="typeID" columns="typeID,skillLevel">
          <row typeID="13279" skillLevel="3" />
          <row typeID="3402" skillLevel="4" />
        </rowset>
}

typeName工作正常,我想要的每个对象只有一个名称,但它可以有多个TypeID,所以我尝试将这些值分组到一个对象中,以便最终将其全部导入核心数据。 我知道TypeID也只是全部转储到一个数组中。我只是不知道如何通过元素行更好地分隔东西


谢谢。

如果您使用NSXMLParser,那会容易得多。在行标记的每个开口处,您将创建一个新对象来表示它。此时您还将获得一个包含所有属性的字典,因此您将使用该字典设置新行对象实例的属性。

这就是我所想的,我只是用了错误的工具来处理这个问题,谢谢
-(void)parseXMLFromBundle
{
NSError *error;

NSString *path = [[NSBundle mainBundle] pathForResource:@"SkillTree" ofType:@"xml"];

DDXMLDocument *xmlDoc = [[DDXMLDocument alloc] initWithData:[NSData dataWithContentsOfFile:path] options:0 error:&error];

//main array with everything
NSArray *xmlItems = [xmlDoc nodesForXPath:@"//result" error:&error];
//go through it to extract each thing
for (DDXMLElement *itemElement in xmlItems)
{
self.typeArray = [itemElement nodesForXPath:@"//@typeName" error:&error];

self.requiredIDArray = [itemElement nodesForXPath:@"//row[@typeID]/@typeID" error:&error];
DLog(@"required SkillID: %@",self.requiredIDArray);