NSXMLParser:商店值在哪里?

时间:2012-04-12 11:59:37

标签: objective-c ios nsxmlparser

我希望我的应用程序可以使用XML文件作为某种预初始化程序。我想分析xml文件,然后绘制屏幕。所以例如我在struct中有一个xml文件:

<app>
   <screens>        
    <screen name="myscreen1">
            <font fontsize="32" fontcolor="#000000" fontface="font.ttf"/>

            <button tmpl="bk"/>

            <list area="0px 74px 100% 100%">
                <item tmpl="myitem1" target="myitemelsewhere">
                    <image tmpl="myitem1" img="myimg1.png"/>
                    <text tmpl="myitem1">Test</text>
                </item>
                <item tmpl="myitem2" target="myitemelsewhere">
                    <image tmpl="myitem2" img="myimg2.png"/>
                    <text tmpl="myitem2">Test</text>
                </item>
             </list>
    </screen>
<!--screen 2 the same way -->
</screens>
</app>

我实现了NSXMLparser,我可以简单地读取属性和标签。这是问题。我的问题是。当我得到第一个元素(ex myscreen1)时,最好的想法是什么,并在以后获取所有屏幕声明标签和属性? NSSetNSDictionaryNSArray?例如:

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
{
    element = [NSMutableString string];

    if([elementName isEqualToString:@"screen"])
    {
        //What should i do here to tell my app to store all attributes? Where to put this?
    }
}

1 个答案:

答案 0 :(得分:1)

您通常有一个变量来保存正在流入的数据和一个变量来存储您正在处理的XML标记。您在上面提供的位置是用于设置您当前正在处理的XML标记。这是一个很棒的示例代码,可以帮助您入门:

http://weblog.bignerdranch.com/?p=48