2012-04-12 82 views
0

我想要我的應用程序將與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

回答

1

您通常有一個變量用於保存正在流入的數據以及用於存儲正在處理的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