2011-10-21 9 views
0

私はiPhoneの開発に新しい、私は1つのxmlファイルをローカルに保存し、NSXmlParser(リソースフォルダに格納されている)を使用して詳細を表示しています。しかし、今私はurl(クライアント側から)から新しいxmlをダウンロードし、その新しいxmlファイルをCacheディレクトリに格納し、リソースフォルダからxmlファイルを削除する必要があります。しかし、私はキャッシュディレクトリから新しいXMLファイルを解析しませんでした。どうすればキャッシュディレクトリから新しいXMLファイルを解析できますか?誰でもこれを知っている、助けてくださいCachedirectoryからXmlファイルを取り出す方法は?

答えて

0

私は実際には私のプロジェクトの一つのためにこの機能を書いています。 XMLファイルを保存してキャッシュに書き込むために私が以前に使ったコードを共有します。

- (NSString *)XMLCacheFilePath 
{ 
    NSString *directory = @"/Library/Caches/XML/"; 
    NSString *fileName = [@"file" stringByAppendingPathExtension:@"xml"]; 

    // Setup directory path 
    NSString *homeDirectoryPath = NSHomeDirectory(); 
    NSString *unexpandedDirectoryPath = [homeDirectoryPath stringByAppendingString:directory]; 
    NSString *directoryPath = [NSString pathWithComponents:[NSArray arrayWithObjects: 
                 [NSString stringWithString:[unexpandedDirectoryPath stringByExpandingTildeInPath]], 
                 nil]]; 

    // Setup file path 
    NSString *unexpandedFilePath = [directoryPath stringByAppendingPathComponent:fileName]; 
    NSString *filePath = [NSString pathWithComponents:[NSArray arrayWithObjects: 
                 [NSString stringWithString:[unexpandedFilePath stringByExpandingTildeInPath]], 
                 nil]]; 

    if (![[NSFileManager defaultManager] fileExistsAtPath:directoryPath isDirectory:nil]) { 
     NSError *error = [[NSError alloc] init]; 

     [[NSFileManager defaultManager] createDirectoryAtPath:directoryPath 
           withIntermediateDirectories:YES 
               attributes:nil 
                error:&error];     
    } 

    return filePath; 
} 

- (void)saveXMLStringToDisk:(NSString *)xmlString 
{ 
    NSError *error; 

    [xmlString writeToFile:self.XMLCacheFilePath 
       atomically:YES 
        encoding:NSUTF8StringEncoding 
        error:&error]; 
} 

- (NSString *)XMLStringFromDisk 
{ 
    NSString *XMLString = [NSString stringWithContentsOfFile:self.XMLCacheFilePath 
                encoding:NSUTF8StringEncoding 
                 error:nil]; 

    return XMLString; 
} 
関連する問題