NSXMLParser:哪里存储值?

问题描述:

我想要我的应用程序将与XML文件一起作为某种预初始化程序。我想分析XML文件,然后画屏幕。因此,例如我有一个结构的XML文件:NSXMLParser:哪里存储值?

<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? 
    } 
} 
+0

怎么样......伊娃? – QED 2012-04-12 12:04:41

+0

这是XML的潜行高峰。在实际的xml中有很多更多的参数,而且我不需要每个参数的变量。我想认为有一种方法可以创建Dictionary/Array/Set(也许是字典数组),然后,当我想添加一些新参数时,它会非常简单。 – Kuba 2012-04-12 12:07:58

+0

我认为你在那里。尝试阅读XML文档和/或查看一些示例代码,然后尝试一些内容并返回给我们。研究工作 – QED 2012-04-12 12:09:22

您通常有一个变量用于保存正在流入的数据以及用于存储正在处理的XML标记的变量。您在上面给出的地方是设置您当前处理的XML标签。这里是一个伟大的一块示例代码让你开始:

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

+0

很好的例子。所以我可以为一个类创建变量,这仍然可能正在进行中。 Thx,这很常见。 – Kuba 2012-04-12 12:23:04

+1

是的,创建一个类用于存储您从XML中存储的任何内容,并且该类有一些变量。也许一个用户类与userName和userPhoto变量。 – 2012-04-12 12:43:16

+0

无效链接:-(实际上我希望找到的是将XML读入字典层次结构的示例代码。任何示例代码?看起来像这样的东西都应该由Apple编写。 – 2014-06-07 03:22:58