实现把字典转换为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;
- }