2010-06-03 114 views
1

我想從本地路徑採取一些XML數據,並解析,但是當我使用下面的代碼 NSLog返回(內容)不同於XML文件的不同文本,我如何得到確切的XML數據檢查,它包括正確的XML數據或不?請幫忙嗎?當我解析時,它不會返回任何內容..我已將文件保存爲.xml並複製到本地資源文件夾中?通過NSData打印本地xml文件?

NSString *xmlFilePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"samp.xml"]; 
NSString *xmlFileContents = [NSString stringWithContentsOfFile:xmlFilePath]; 

NSData *data = [NSData dataWithBytes:[xmlFileContents UTF8String] length:[xmlFileContents lengthOfBytesUsingEncoding: NSUTF8StringEncoding]];     
NSString *content=[[NSString alloc] 
        initWithBytes:[data bytes] 
        length:[data length] 
        encoding:NSUTF8StringEncoding]; 
NSLog(@"%@",content); 

回答

1

這幾乎可以肯定是一個編碼問題。在嘗試創建NSData對象之前,請確保您的xml文件使用UTF8或將其轉換爲UTF8。完成後,以下代碼將生成與輸入相同的輸出。

NSString *open = [NSString stringWithContentsOfFile: [@"~/Desktop/note" stringByExpandingTildeInPath] encoding: NSUTF8StringEncoding error: NULL]; 
NSData *data = [NSData dataWithBytes: [open UTF8String] length: [open lengthOfBytesUsingEncoding: NSUTF8StringEncoding]]; 
NSString *save = [NSString stringWithUTF8String: [data bytes]]; 
[save writeToFile: [@"~/Desktop/note2" stringByExpandingTildeInPath] atomically: NO encoding: NSUTF8StringEncoding error: NULL]; 

您可能需要使用NSXML類之一,除非你想要做所有的分析自己。