我正在尝试更新xml文件。在得到建议后,我最终选择了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文件。有人能帮上忙吗?
发布于 2013-06-21 23:54:39
您要查找的缺少的代码行是
NSData *xmlData = doc.XMLData;来自Anupdas answer关于你的最后一个问题。您当前正在将一个文件读入内存,使用该内存初始化一个新对象,更新该新对象,然后将原始文件的内存写入新文件位置。因此,从本质上讲,您正在读取一个文件,然后将相同的文件写回文件位置。
https://stackoverflow.com/questions/17235752
复制相似问题