2013-03-21 58 views
0

我想動態生成一個具有一個或多個NSObject的屬性的單個XML字符串。從NSObjects動態生成XML字符串

我正在使用WonderXML,但我不明白我如何能夠調整WonderXML生成的XML-Strings的結構。

這是到目前爲止我的代碼:

對象:

@interface Getraenke_Object : NSObject {  
@protected 
    NSString *item_id; 
    NSString *menge; 
    NSString *categorie; 

    NSString *name; 
    NSString *preis;  
    NSString *image; 
} 

@property (nonatomic, copy) NSString *item_id; 
@property (nonatomic, copy) NSString *menge; 
@property (nonatomic, copy) NSString *categorie; 
@property (nonatomic, copy) NSString *name; 
@property (nonatomic, copy) NSString *preis; 
@property (nonatomic, copy) NSString *image; 

@end 

M文件:

//-----------------Converting the Objects to XML-Strings-------------- 

    XmlParser *parser = [[XmlParser alloc] init]; 
    NSString *meinXmlString; 

    for(int i=0; i<getraenkeArray.count; i++) 
    { 
     meinXmlString = [parser toXml:[getraenkeArray objectAtIndex:i] andTag:@"Getraenk" inNameSpace:@"table_info"]; 
    } 

    NSLog(@"meinXmlString: %@\n", meinXmlString); 

這是meinXmlString的樣子:

meinXmlString:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<Getraenke_Object xmlns="table_info"><name>Chateau_d_Angludet</name> 
<menge>1</menge><preis>119</preis><image>Rotwein.png</image> 
<categorie>getraenke</categorie><item_id>101</item_id> 
</Getraenke_Object> 

但它應該是這樣的:

testXML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<Table_info><table_id>1</table_id><action_id>3</action_id><Bestellliste> 
<item><categorie>getraenke</categorie><item_id>100</item_id><menge>1</menge></item> 
<item><categorie>getraenke</categorie><item_id>2</item_id><menge>1</menge></item> 
</Bestellliste></Table_info> 

我希望包括我的問題可以理解的。 謝謝!

回答

0

您爲每個對象創建一個XML字符串,並且只保留最後一個。

看來,WonderXML自動創建一個基於你在傳遞對象的屬性及其名稱的XML文檔。

由於看來你希望你的XML包括陣列中的所有對象,嘗試通過整個陣列以單個電話號碼parser toXml。你不想要一個循環。

當然,自己創建XML可能更容易。只需創建一個NSMutableString並添加所需標籤的文本。