GDataXML更新xml数据

时间:2013-06-21 12:54:36

标签: ios xml gdataxml

我正在尝试更新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文件。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

您正在寻找缺少的代码行

NSData *xmlData = doc.XMLData;

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