解析plist文件并获取key的值

时间:2013-05-27 14:41:31

标签: ios xml plist nsdictionary

我有以下文件:

enter image description here

我有一个问题,如何从此plist文件中获取url值。

我已将此文件转换为NSDictionary,它包含所有键和值。

我已添加此行以检查其工作原理

 NSLog(@"%@", [[[[source objectForKey:@"Root"] objectForKey:@"updates"] objectForKey:@"Item 0"] objectForKey:@"url"]);

但它返回(null)而不是someurl1。

source - 这是我的NSDictionary实例变量。

我的NSDictionary对象的日志

(NSDictionary *) $1 = 0x0ab38b60 {
    plist =     {
        dict =         {
            array =             {
                dict =                 (
                                        {
                        integer = 4;
                        key =                         (
                            id,
                            url,
                            compression
                        );
                        string = "http://someurl1";
                        true = "";
                    },
                                        {
                        integer = 5;
                        key =                         (
                            id,
                            url,
                            compression
                        );
                        string = "http://someurl2";
                        true = "";
                    }
                );
            };
            key = updates;
        };
        version = "1.0";
    };
}

2 个答案:

答案 0 :(得分:4)

尝试:

for (NSDictionary *item in [source objectForKey:@"updates"]) {

    NSLog(@"%@", [item objectForKey:@"url"]);
}

请注意,“Root”不是键,它只是Xcode显示plist的方式。你需要遍历一个数组,'Item 0'就是它在IDE中的显示方式。

答案 1 :(得分:2)

很好。

试试这段代码。

NSDictionary *rootDictionary = [NSDictionary dictionaryWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"PListFile" ofType:@"plist"]];
NSLog(@"%@", [[[rootDictionary objectForKey:@"updates"] objectAtIndex:0] objectForKey:@"url"]);