gpt4 book ai didi

ios - 如何在 iOS 中保存和更新 xml 文件中的值?

转载 作者:技术小花猫 更新时间:2023-10-29 11:07:43 25 4
gpt4 key购买 nike

在 iOS 中,我正在读取一个 xml 文件。这里我想写 xml 文件,我想更改 XML 文件的值,我想保存文件。

我的代码如下...请指导我如何在 xml 文件中保存和更新值。

-(void)writexmlfile:(NSString *)data toFile:(NSString *)fileName nodename:(NSString *)nodename{


NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

// the path to write file
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.xml",fileName]];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:appFile];
if(fileExists) {
NSError *error = nil;
NSString *docStr;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

// the path to write file
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.xml",fileName]];

BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:appFile];
if(fileExists)
{
NSLog(@"file exist in document");
NSData *myData1 = [NSData dataWithContentsOfFile:appFile];
if (myData1) {
docStr = [[NSString alloc] initWithData:myData1 encoding:NSASCIIStringEncoding];

}
}
NSMutableString *str = [[NSMutableString alloc] init];
NSString *aaa=[NSString stringWithFormat:@" <%@>%@</%@>",nodename,data,nodename];
[str appendString:docStr];

[str insertString:aaa atIndex:70];
BOOL success = [str writeToFile:appFile atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (!success) {
NSLog(@"Error: %@", [error userInfo]);
}
else {
NSLog(@"File write is successful");
}
}
}

最佳答案

简而言之,

  1. 使用 XML 解析器读取 XML
  2. 以某种对象结构(数据绑定(bind))表示 XML
  3. 修改对象结构;这是您插入新元素等的地方
  4. 使用 XML 序列化器从对象结构中写入 XML(不推荐自己制作 XML)

在第 1 步和第 4 步中,您可以通过 NSData 或直接从文件中读取,具体取决于 XML 解析器和编写器 API。

您可以使用 NSXMLParser 来解析 XML,并使用 libxml(2) 来解析写入器,或者其他读取器和 writers (我的 this one)。

关于ios - 如何在 iOS 中保存和更新 xml 文件中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6620726/

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