2012-12-04 41 views
0

我有一個很大的文本文件,我想將其轉換爲Xcode。我在主包中添加了文本文件(拖放)到我的項目中。我可以看到文本文件viewDidLoad
但我喜歡將其轉換爲XML文件。比如我的文件看起來像:如何在xcode中將文本文件轉換爲xml

asasasasasas   
    wewewewewewe   
    qwqwqwqwqwqw 
xyz_ 22 aaaaaaaaaaa   
fgfgfgfgfgfgfg   
ererererererer 

abc_ 12 bbbbbbbbbb  
jkjkjkjkjkjkjk  
lalallalalalal 

在以上提到的,我想消除前3行中,從xyz_ 22開始爲(父),jkjkjkj爲孩子lalalala作爲一個孩子。

我只需要知道如何實現這個......我會寫代碼:)

mycode的: - (IBAction爲)readUsingObjectiveC:(ID),PID { 的NSString * ZSTR = [NSString的stringWithContentsOfFile :@「/ Users/dd007/Desktop/abc.txt」encoding:NSASCIIStringEncoding error:NULL]; NSLog(@「readUsingObjectiveC zStr = \ n%@」,zStr);

// now to extract the data line by line 
NSArray * zAryOfLines = [zStr componentsSeparatedByString:@"\n"]; 
if([zAryOfLines count] == 0) 
{ 
    NSLog(@"readUsingObjectiveC zAryOfLines count = 0"); 
    return; 
} 
//for (int i=0; i<([zAryOfLines count]-30); ++i) 
for (int i=30; i<zAryOfLines ; i++) 

{ 
     if([[zAryOfLines objectAtIndex:i] isEqualToString:@"xyz_ "]) 
     { 
      NSLog(@"<msg1>%@<msg1/>\n",[zAryOfLines objectAtIndex:i]); 
      NSLog(@"<msg2>%@<msg2/>\n",[zAryOfLines objectAtIndex:i+1]); 
      NSLog(@"<msg3>%@<msg3/>\n",[zAryOfLines objectAtIndex:i+2]); 
[zArrayOfLines writeToFIle:@"/.....documents/..save.xml" automatically:YES encodingNSASCIIStringEncoding error:NULL];    
     } 
    } 

我正在轉換成XML格式,但我想保存的.xml文件..但我得到錯誤可能任何一個可以告訴我在哪裏,我在做什麼錯誤??????

+1

我想..首先你需要將文本文件的內容提取到一個NSString中 – AppleDelegate

回答

0

您不能轉換文件中使用的XCode到XML,你有兩個選擇:

您可以創建它分析你的文件,並讓一個XML文件中的Python或Ruby腳本,然後使用XML解析器,

或者您可以創建一個類,用您想要的規則分析純文件。

+0

我有同樣的想法來實現你在第二個選項中提到的....然後我必須讀取每一行,並且必須爲body創建一個xml標籤,父母,孩子......是我對嗎? – DD007

+0

是的,你將不得不這樣做手動 –

+0

謝謝安東尼奧你的答覆值得很多:) – DD007

0

我想你想要將.txt轉換爲.xml文件,這樣我就可以將.txt文件讀到一個nsstring文件中。我將它與componentsSeparatedByString一起切割成NSArray:@「\ n」NSString方法\ r字符)後,只是不採取行你不想要和創建一個新的NSString爲添加標記的XML到你的行,如果你現在放置好標籤或檢查它包含你的行在NSArray for完成只保存在擴展名爲.xml的新文件中。

如果你需要編寫代碼的幫助,像我描述的那樣。

+0

@ user1770436感謝您的想法它的驚人的...我喜歡它...如果你有一些示例代碼...我喜歡它:)因爲它會減少我的工作..再次感謝 – DD007

+0

代碼在哪裏? – DD007

+0

對不起,在評論中看不到在其他答案請參閱^^ – Illuyankas

0

在iOS中無法直接將文本轉換爲xml。 但是,您可以通過手動傳遞數據來完成。

您可以使用libXml框架或GDataXml來執行此操作。

對於libXml XML生成的代碼示例去這個link和下載章10.zip

請查看本教程爲Read and Write XML Documents with GDataXML

而且TCMXMLWriter是一個開源的xmlgenerator:

0

我覺得像一個代碼這個工作爲你的例子:

NSString *contentFile = [[NSString alloc] initWithContentsOfFile:pathFile encoding:NSUTF8StringEncoding error:nil]; 
NSArray *lineFile = [contentFile componentsSeparatedByString:@"\n"]; 
NSMutableString *xmlFile = [[NSMutableString alloc] init]; 
For(int i = 3; i < lineFile.count; i++)//i = 3 for don't take the 3 first line 
{ 
    if ([((NSString *)[lineFile objectAtIndex:i]) rangedOfString:@"test"].location != NSNotFound) 
    { 
     xmlFile = [NSString stringWithFormat:@"%@<nameTag>%@</nameTag>", xmlFile, (NSString *)[lineFile objectAtIndex:i]]; 
    } 
    else if ... 
} 

並保存他在新文件中無法使用。可以在循環中製作數字,就像我是4等3中的倍數...

+0

它不工作我試圖使文本字符串數組和製作特定的字符標記...但它不轉換爲XML格式.. – DD007

+0

[xmlFile writeToFile: @/.... documents..xml「自動:YES編碼:NSASCIIStringEncoding錯誤:空] 哇它的工作很好:)謝謝pal – DD007