2013-03-21 129 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并添加所需标签的文本。