我怎样才能使用 NSXMLParser 进行这种类型的 XML 响应,我对两次“点击”感到困惑,它会击中,所以如何使用一个对象管理流程并保存数据,请帮帮我,
</campaign_summary_response>
<summary> <clicks>6</clicks>
<conversions>1</conversions>
<conversion_rate>0.1666666666666666666666666667</conversion_rate>
<revenue>22.26555000000000</revenue>
<revenue_converted>22.26555000000000</revenue_converted>
<currency_symbol>$</currency_symbol>
<currency_symbol_converted>$</currency_symbol_converted>
</summary>
<campaigns>
<campaign> <offer_id>100</offer_id>
<offer_name>$100 Wendy's Gift Card + Free Frosty</offer_name>
<campaign_id>1781</campaign_id> <vertical_name>Free Stuff</vertical_name>
<price_format>CPA</price_format>
<price>0.0000</price>
<impressions>0</impressions>
<clicks>6</clicks>
<conversions>1</conversions>
<conversion_rate>0.1666666666666666666</conversion_rate>
<revenue>15.0000</revenue>
<revenue_converted>22.26555000000000</revenue_converted>
<epc>2.50000000000000000000000</epc>
<currency_symbol>€</currency_symbol>
<currency_symbol_converted>$</currency_symbol_converted>
</campaign> </campaigns>
</campaign_summary_response>
如何按照委托(delegate)方法进行编码
- (void)parser:(NSXMLParser *)parser
didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName {
这样我就可以将所有值保存在一个对象中并在显示器上显示。
最佳答案
在didStartElement
方法中。
if([elementName isEqualToString:@"summary"]) summary = YES;
if([elementName isEqualToString:@"campaign"]) campaign = YES;
在didEndElement
方法中。
if(summary) {
if([elementName isEqualToString:@"revenue"]) // revenue in summary
if([elementName isEqualToString:@"summary"]) summary = NO;
}
if(campaign) {
if([elementName isEqualToString:@"revenue"]) // revenue in campaign
if([elementName isEqualToString:@"campaign"]) campaign = NO;
}
关于iphone - 当我在不同类别中有多个同名节点时,如何使用 NSXMLParser 读取 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7219196/