2013-06-21 5 views
0

Я пытаюсь обновить xml-файл. После предложения я решил выбрать GdataXml. Так что я пытаюсь обновить файл options.xml.GDataXML update xml data

Оригинал Файл

<Dat> 
    <Name>Tom</Name> 
    <Option>1</Option> 
</Dat> 

мне нужно изменить «Томь» в «Джим» и сохранить в том же файле

Вот код, который я попробовал.

-(void)saveToXML 
{ 
NSString* path = [[NSBundle mainBundle] pathForResource:@"options" ofType:@"xml"]; 

NSData *xmlData = [[NSMutableData alloc] initWithContentsOfFile:path]; 
NSError *error; 
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData options:0 error:&error]; 

GDataXMLElement *rootElement = [GDataXMLElement elementWithName:@"Dat"]; 

NSArray *mySettings = [doc.rootElement elementsForName:@"Dat"]; 

for (GDataXMLElement *mySet in mySettings) 
{ 
    NSString *name; 
    NSArray *names = [mySet elementsForName:@"Name"]; 
    if (names.count > 0) 
    { 
     GDataXMLElement *childElement = (GDataXMLElement *) [names objectAtIndex:0]; 
     name = childElement.stringValue; 
     NSLog(childElement.stringValue); 
     [childElement setStringValue:@"Jim"]; 
    } 
} 

[xmlData writeToFile:path atomically:YES]; 


} 

Но это не обновление файла options.xml. Может ли кто-нибудь помочь в этом?

+0

Где вы находитесь? –

ответ

2

недостающее строка кода вы ищете

NSData *xmlData = doc.XMLData; 

из Anupdas answer на ваш последний вопрос. Вы в настоящее время читаете файл в память, инициализируя новый объект с использованием этой памяти, обновляя этот новый объект, а затем записывая память исходного файла в новое местоположение файла. По сути, вы читаете файл, а затем записываете тот же файл обратно в папку.

+0

Спасибо Putz. Вот и все. – user1771823

+0

Тогда вы можете принять ответ Anupdas от вашего предыдущего вопроса, поскольку это был его код, который дал ваше решение. – Putz1103

+0

уверен ... Еще раз спасибо – user1771823

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