无法从NSDictionary中提取所需的信息

我parsing一个XML文件,parsing后得到一个NSDictionary对象(XMLDictionary命名)。 我parsing这个:

<result><node><id>27</id><name>Name 1</name><type>0</type><price>0</price><img>/upload/iblock/1a1/1a138b2d4da6e42398beeb21acc8e84f.png</img></node><node><id>28</id><name>Name 2</name><type>0</type><price>0</price><img>/upload/iblock/b72/b724d1550f93987a73b04974b5f7390e.png</img></node></result> 

之后,我正在尝试这个(titleArr – NSArray):

 _titleArr = [[[[_xmlDictionary objectForKey:@"result"] objectForKey:@"node"] objectForKey:@"name"] valueForKey:@"text"]; 

在运行时,我得到这个错误在上面的行:“线程1:信号SIGABRT”。 我该如何解决这个问题?

 NSError* parseError = nil; _xmlDictionary = [XMLReader dictionaryForXMLString:myXMLString error:&parseError]; if (parseError != nil) { NSLog(@"Error on XML parse: %@", parseError); } NSLog(@"The full dictionary is %@", _xmlDictionary); NSDictionary* result = [_xmlDictionary objectForKey:@"result"]; NSLog(@"'result' = %@", result); NSDictionary* node = [result objectForKey:@"node"]; NSLog(@"'node' = %@", node); NSString* name = [node objectForKey:@"name"]; NSLog(@"'name' = %@", name); 

至less,如果失败了,错误将被隔离到一个单一的操作。 NSLogs会在每一步之后显示你的值。

尝试这个:

 NSArray *arrResult = [_xmlDictionary objectForKey:@"result"]; for(int i = 0; i < [arrResult count]; i++) { NSArray *arrNode = [arrResult objectAtIndex:i] valueForKey:@"node"]; NSString *sName = [arrNode valueForKey:@"Name"]; NSLog(@"Name : %@",sName); } 

已编辑的答案

  NSArray *arrResult = [_xmlDictionary valueForKey:@"result"]; for (int i = 0; i < [arrResult count]; i++) { NSDictionary *dicNode = [[arrResult objectAtIndex:i] valueForKey:@"Node"]; NSString *sName = [dicNode valueForKey:@"Name"]; NSLog(@"Name : %@",sName); }