【问题标题】:Generate XML-String dynamically from NSObjects从 NSObjects 动态生成 XML-String
【发布时间】:2013-03-11 08:17:54
【问题描述】:

我正在尝试使用一个或多个 NSObject 的属性动态生成一个 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>

但它应该看起来像:

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>

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

【问题讨论】:

    标签: iphone objective-c xml xml-parsing nsobject


    【解决方案1】:

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

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

    既然您希望 XML 包含数组中的所有对象,请尝试将整个数组传递给对 parser toXml 的单个调用。你不想要一个循环。

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

    【讨论】:

      猜你喜欢
      • 2016-08-24
      • 2014-07-16
      • 1970-01-01
      • 2013-01-07
      • 2011-03-24
      • 2016-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多