我有一个我正在编辑的NSXMLDocument然后保存。问题是,它正在逃避我的&和<。
NSArray *nodes = [document nodesForXPath:@"JDF/JDF/ResourcePool/od:Ticket/od:Parameter/DefaultOutputOption" error:nil];
[[nodes objectAtIndex:0] setStringValue:@"34""];
NSLog(@"%@", [[nodes objectAtIndex:0]stringValue]);
[[nodes objectAtIndex:1] setStringValue:@"1<2"];
NSLog(@"%@", [[nodes objectAtIndex:1]stringValue]);
NSData *xmlData = [document XMLDataWithOptions:NSXMLNodePreserveAll];
[xmlData writeToFile:path atomically:YES];
在控制台中我得到了你对NSLog语句的期望:
2011-09-06 16:05:56.480 My App[14369:707] 34"
2011-09-06 16:05:56.482 My App[14369:707] 1<2
但是在我的XML文档中,我得到了:
34&quot;
1<2
我做错了什么?
答案 0 :(得分:0)
从技术上讲,你没有做错任何事。为节点设置文本值时,应使用原始的非转义形式。当节点被序列化为XML时,一些字符将被转义,例如, “将成为&amp; quot;而&lt;将成为&amp; lt;。
我想在第一个节点中真正想要输入文本的是34"
,它以XML序列化形式为34"
。