2011-07-08 3 views
2

Я новый разработчик iphone, в своем приложении я могу читать данные из xml код для чтения xml :: - (NSString *) readxmlFile: (NSString *) fileName ElementName: (NSString *) Element Poisson: (NSInteger *) Индекс { xmlelement = Element; NSString * filePath = [[NSBundle mainBundle] pathForResource: fileName ofType: @ "xml"];Как обновить значения узлов и добавить узлы в xml-файл?

NSData *myData = [NSData dataWithContentsOfFile:filePath]; 
NSString *str,*docStr; 

if (myData) { 
    str = [[NSString alloc] initWithData:myData encoding:NSASCIIStringEncoding]; 

} 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

// the path to write file 
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.xml",fileName]]; 
NSError *error = nil; 
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:appFile]; 
NSData *myData1 = [NSData dataWithContentsOfFile:appFile]; 
if(fileExists) 
{ 
    NSLog(@"file exist in document"); 

    if (myData1) { 
     docStr = [[NSString alloc] initWithData:myData1 encoding:NSASCIIStringEncoding]; 
     xmlparser=[[NSXMLParser alloc] initWithData: myData1]; 
     [xmlparser setDelegate:self]; 
     [xmlparser parse]; 
     NSLog(@"Data>>%@",xmlData); 
    } 
} 
else { 
    NSLog(@"file does not exist"); 
    xmlparser=[[NSXMLParser alloc] initWithData: myData1]; 
    [xmlparser setDelegate:self]; 
    [xmlparser parse]; 
    NSLog(@"Data>>%@",xmlData); 
    BOOL success = [str writeToFile:appFile atomically:YES encoding:NSUTF8StringEncoding error:&error]; 
    if (!success) { 
     NSLog(@"Error: %@", [error userInfo]); 
    } 
    else { 
     NSLog(@"File write is successful"); 

    } 
    NSData *myData1 = [NSData dataWithContentsOfFile:appFile]; 
    if (myData1) { 
     docStr = [[NSString alloc] initWithData:myData1 encoding:NSASCIIStringEncoding]; 
    } 
} 
return [xmlData objectAtIndex:Index];//pasre data from xml based on node name and save in xmlData 

} , но не в состоянии написать XML (добавить узлы и значения узлов обновления), пожалуйста, руководство меня, как добавить узлы и значения узлов обновления в XML-файле. Заранее спасибо

ответ

0

NSXMLParser - это всего лишь парсер. Он не пишет XML. Это отлично подходит для работы с потоками XML, но не так хорошо, если вы получаете весь фрагмент одновременно.

Google написал отличный класс чтения/записи XML под названием GDataXmlNode. Вот сообщение в блоге о том, как его использовать. http://www.raywenderlich.com/725/how-to-read-and-write-xml-documents-with-gdataxml

Это гораздо приятнее, чем использование NSXMLParser.

Смежные вопросы