2011-12-06 116 views
1

我有一個包含數組和字典的.plist文件。我想將其轉換爲CSV文件,然後我可以將它在線上傳到數據庫。有誰知道一個簡單的方法來做到這一點?將plist轉換爲CSV文件?

回答

4

請看下面的代碼

NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"plist"]; 
    NSArray *commentArray = [NSArray arrayWithContentsOfFile:plistPath]; 

    NSMutableString *mainString=[[NSMutableString alloc]initWithString:@""]; 
    for(int i=0;i<[commentArray count];i++) { 
     NSString *string=[[commentArray objectAtIndex:i]objectForKey:@"cmtName"]; 
     string=[string stringByReplacingOccurrencesOfString:@"\"" withString:@"\"\""]; 
     [mainString appendFormat:@"\"%@\"",string]; 

     string=[[commentArray objectAtIndex:i]objectForKey:@"cmtDesc"]; 
     string=[string stringByReplacingOccurrencesOfString:@"\"" withString:@"\"\""]; 
     [mainString appendFormat:@",\"%@\"",string]; 

     string=[[commentArray objectAtIndex:i]objectForKey:@"cmtType"]; 
     string=[string stringByReplacingOccurrencesOfString:@"\"" withString:@"\"\""]; 
     [mainString appendFormat:@",\"%@\"",string]; 

     [mainString appendFormat:@",\"%@\"",string]; 
     [mainString appendFormat:@"\n"]; 
    } 


NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectoryPath = [paths objectAtIndex:0]; 
NSString *filePath = [documentsDirectoryPath stringByAppendingPathComponent:@"Docment.conf"]; 


NSData* settingsData; 
settingsData = [mainString dataUsingEncoding: NSASCIIStringEncoding]; 

if ([settingsData writeToFile:filePath atomically:YES]) 
    NSLog(@"writeok"); 

您也可以使用https://github.com/davedelong/CHCSVParser來生成CSV。