Получение значения из вложенного NSDictionary - PullRequest
0 голосов
/ 09 марта 2011

После попытки 100 попыток в этом я прибегаю к SO.

У меня есть этот вывод в словаре из парсера html, использующего libxml2

 {
        nodeChildArray =             (
                            {
                nodeAttributeArray =                     (
                                            {
                        attributeName = class;
                        nodeContent = imgContainer;
                    }
                );
                nodeChildArray =                     (
                                            {
                        nodeAttributeArray =                             (
                                                            {
                                attributeName = src;
                                nodeContent = "/~/media/Images/Image 2.ashx";
                            },
                                                            {
                                attributeName = alt;
                                nodeContent = "Image 2";
                            },
                                                            {
                                attributeName = width;
                                nodeContent = 60;
                            },
                                                            {
                                attributeName = height;
                                nodeContent = 112;
                            }
                        );
                        nodeName = img;
                    }
                );
                nodeName = div;
            }
        );
        nodeName = td;
    },

Я пытаюсь получить значение nodeContent / ~ / media / Images / Image 2.ashx ...

Есть идеи, как должна выглядеть моя итерация?

1 Ответ

1 голос
/ 09 марта 2011

ваш код для доступа должен выглядеть так:

[[[nodeChildArray objectAtIndex:0] objectAtIndex:0] valueForKey:@"nodeContent"];

я использую 0, вы можете получить его из цикла, выполняемого до подсчета в массиве.создать правильную структуру if else и разбить ее на отдельные утверждения.тогда это должно выглядеть как

if([nodeChildArray count] >0)
{
array1=[nodeChildArray objectAtIndex:0];  //an array object
if([array1 count]>0)
{
dictionary=[array1 objectAtIndex:0]; //a dictionary
//then you can find the value

id value=[dictionary valueForKey:@"nodeContent"];
}
}
...