gpt4 book ai didi

ios - GDataXML 更新 xml 数据

转载 作者:行者123 更新时间:2023-11-28 22:31:43 31 4
gpt4 key购买 nike

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

最佳答案

您要查找的缺失代码行是

NSData *xmlData = doc.XMLData;

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

关于ios - GDataXML 更新 xml 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17235752/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com