首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GDataXML更新xml数据

GDataXML更新xml数据
EN

Stack Overflow用户
提问于 2013-06-21 20:54:36
回答 1查看 728关注 0票数 0

我正在尝试更新xml文件。在得到建议后,我最终选择了GdataXml。所以我正在尝试更新options.xml文件。

原始文件

代码语言:javascript
复制
<Dat>
   <Name>Tom</Name>
   <Option>1</Option>
</Dat>

我需要将"Tom“更改为"Jim”并保存在相同的文件中

这是我尝试过的代码。

代码语言:javascript
复制
 -(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文件。有人能帮上忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-21 23:54:39

您要查找的缺少的代码行是

代码语言:javascript
复制
NSData *xmlData = doc.XMLData;

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17235752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档