GDataXML更新xml数据

我正在尝试更新一个XML文件。 build议后我最终select了GdataXml。 所以我正在尝试更新options.xml文件。

原始文件

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

我需要将“Tom”改为“Jim”并保存在同一个文件中

这是我尝试的代码。

  -(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文件。 有人可以帮助吗?

你正在寻找的代码的缺失行是

 NSData *xmlData = doc.XMLData; 

来自Anupdas回答你最后一个问题。 您正在将文件读入内存,使用该内存初始化新对象,更新该新对象,然后将原始文件的内存写入新文件位置。 所以基本上你正在读一个文件,然后把相同的文件写回到文件位置。