0

我正在尝试使用一个或多个 NSObjects 的属性动态生成一个 XML-String。

我正在使用 WonderXML,但我不明白如何调整 WonderXML 生成的 XML 字符串的结构。

到目前为止,这是我的代码:

目的:

@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>

但它应该看起来像:

测试XML:

<?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>

我希望描述我的问题可以理解。谢谢!

4

1 回答 1

0

您为每个对象创建一个 XML 字符串,最后只保留最后一个。

WonderXML 似乎正在根据您传入的对象中的属性及其名称自动创建 XML 文档。

由于您似乎希望 XML 包含数组中的所有对象,因此请尝试将整个数组传递给对parser toXml. 你不想要一个循环。

当然,自己创建 XML 可能更容易。只需创建一个NSMutableString并添加您想要的标签文本。

于 2013-03-21T17:40:36.073 回答