Возможность перезаписи xml через пару минут будет зависеть от размера xml, но время вычисления составляет пару минут.
Я не думаю, что вы достигнете этого с помощью простой замены строк. Я думаю, что вам нужно будет проанализировать xml и, когда он разбирается, вам нужно разбить строку (разделить на запятые и т. Д.) И параллельно записывать новый xml документ в нужном вам формате.
Вот быстрый пример разбора строки, которую вы имели. Конечно, если на самом деле все сложнее, пользовательский разбор строк становится более сложным:
- (void) DoWork
{
NSString *xmlSource = @"<Tag><minitag>40.23,12.7</minitag></Tag>";
NSData *data = [xmlSource dataUsingEncoding:NSUTF8StringEncoding];
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
[parser setDelegate:self];
[parser parse];
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if ([elementName caseInsensitiveCompare:@"minitag"] == NSOrderedSame)
{
NSLog(@"minitag");
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
NSLog(@"chars:%@", string);
NSArray *components = [string componentsSeparatedByString:@","];
for (NSString *comp in components)
{
NSLog(@"comp:%@", comp);
// This outputs:
// minitag
// chars:40.23,12.7
// comp:40.23
// comp:12.7
//
// At this point, you have the parts parsed, maintain an NSXmlDocument
// (or other xml writer)
// that you are writing to as you're parsing this
// Add your constant string elements and your sub data elements as you go
//
}
}