Я пытаюсь загрузить онлайн-файл, сохранить его локально, а затем проанализировать его с помощью TBXML!
Проблема в том, что TBXML работает только с этим кодом:
TBXML *tbxml = [[TBXML tbxmlWithXMLFile:@"data.xml"] retain];
Для загрузки я использую этот код:
NSError *err = [[[NSError alloc] init] autorelease];
NSString *url = [[NSString stringWithFormat:@"http://url/data.xml"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *myFile = [NSString stringWithContentsOfURL:[NSURL URLWithString:url] encoding:NSUTF8StringEncoding error:&err];
и это работает! Теперь у меня есть все данные в "myFile" NSString!
Для записи в файл я использую это (и, вероятно, здесь проблема!)
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSError *error;
NSString *myFile = [documentsDirectory stringByAppendingPathComponent:@"abc.xml"];
BOOL succeed = [myTxtFile writeToFile:myFile atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (!succeed){
NSLog(@"no");
}
и это работает! если я сделаю это
NSString *myString = [[NSString alloc] initWithContentsOfFile:myFile encoding:NSUTF8StringEncoding error:NULL];
NSLog(@"%@", myString);
это работает, я вижу все данные из xml!
Проблема в том, что когда я вызываю метод для его анализа с помощью TBXML
это
TBXML *tbxml = [[TBXML tbxmlWithXMLFile:myString] retain];
крушение! Я думаю, что для TBXML нужен локальный файл, сохраненный в каталоге проекта!
Как я могу это сделать? Спасибо! :)
myString
в двух контекстах: сначала вы читаете в него содержимое файла, чтобы зарегистрировать его. Затем вы передаете его как параметрtbxmlWithXMLFile:
, но мне интересно, каково в этом случае содержимоеmyString
(пожалуйста, проверьте через NSLog). - person DarkDust   schedule 09.03.2011