实现把字典转换为XML数据:
#pragma mark - 字典转换为XML字符串
- (NSString *)convertDictionaryToXML:(NSMutableDictionary *)dictionary withStartElement:(NSString *)startElement
{
return [self convertDictionaryToXML:dictionary withStartElement:startElement isFirstElement:YES];
}
- (NSString *)convertDictionaryToXML:(NSMutableDictionary *)dictionary withStartElement:(NSString *)startElement isFirstElement:(BOOL) isFirstElement
{
NSMutableString *xml = [[NSMutableString alloc] initWithString:@""];
NSArray *allKeysArr = [dictionary allKeys];
[xml appendString:startElement];
for(int i = 0; i < allKeysArr.count; i++){
NSString *nodeName = [allKeysArr objectAtIndex:i];
id nodeValue = [dictionary objectForKey:nodeName];
if([nodeValue isKindOfClass:[NSArray class]]){
if([nodeValue count] > 0){
for(int j = 0;j < [nodeValue count]; j++){
id value = [nodeValue objectAtIndex:j];
if([value isKindOfClass:[NSDictionary class]]){
[xml appendString:[self convertDictionaryToXML:value withStartElement:nodeName isFirstElement:NO]];
}
}
}
}else if([nodeValue isKindOfClass:[NSDictionary class]]){
[xml appendString:[self convertDictionaryToXML:nodeValue withStartElement:nodeName isFirstElement:NO]];
}else{
if([nodeValue length] > 0){
[xml appendString:[NSString stringWithFormat:@"<%@>",nodeName]];
[xml appendString:[NSString stringWithFormat:@"%@",[dictionary objectForKey:nodeName]]];
[xml appendString:[NSString stringWithFormat:@"</%@>",nodeName]];
}
}
}
[xml appendString:[NSString stringWithFormat:@"</TVUMetaData>"]];
NSString *finalxml = [xml stringByReplacingOccurrencesOfString:@"&" withString:@"&"];
return finalxml;
}