访问递归NSDictionary中的对象

时间:2012-09-16 21:06:10

标签: objective-c xml nsdictionary

我在访问NSDictionary中的对象时遇到问题。

应用程序从Web服务器下载XML,然后使用XMLReader lib将其解析为NSDictionary。现在我不知道如何访问NSDictionary中的对象。

我的xml结构是:

<xml>
 <categories>
  <category id="1" name="test">
   <questions>
    <question id="1" category_id="1" question="boxes?"/>
    <question id="2" category_id="1" question="cash?"/>
   </questions>
  </category>
  <category id="2" name="blah">
   <questions>
    <question id="3" category_id="2" question="hara?"/>
   </questions>
  </category>
 </categories>

NSURL *url = [[NSURL alloc] initWithString:@"http://localhost/DoNotForget/API/database.xml"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];  
NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"database.xml"];
[request setDownloadDestinationPath:filePath];
[request startSynchronous];

NSData *data = [NSData dataWithContentsOfFile: filePath];
NSError *err;
NSDictionary *test = [XMLReader dictionaryForXMLData:data error:err];
NSLog(@"%@", test);

我怎么能在类别项目上运行循环,或者例如在类别id 1中访问问题ID 1?

抱歉我的英文不好, 请帮我。 谢谢!

1 个答案:

答案 0 :(得分:0)

这样的东西不起作用?

  1. 访问问题

    MyQuestion * question = [[test objectForKey:@“1”] objectForKey:@“1”];

    2.应该运作良好

    for(NSString * key in test){         id value = [test objectForKey:key];         //使用Object或您可以使用代码         以上访问里面的财产     }