gpt4 book ai didi

objective-c - 编辑 NSXMLDocument 而不转义特殊字符

转载 作者:行者123 更新时间:2023-12-03 17:25:17 25 4
gpt4 key购买 nike

我有一个 NSXMLDocument,正在编辑然后保存。问题是,它转义了我的 & 和 <。

NSArray *nodes = [document nodesForXPath:@"JDF/JDF/ResourcePool/od:Ticket/od:Parameter/DefaultOutputOption" error:nil];
[[nodes objectAtIndex:0] setStringValue:@"34&quot;"];
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&quot;
2011-09-06 16:05:56.482 My App[14369:707] 1<2

但是在我的 XML 文档中我得到:

34&amp;quot;
1&lt;2

我做错了什么?

最佳答案

从技术上讲,你没有做错任何事情。当您设置节点的文本值时,应使用原始的、未转义的形式。当节点序列化为 XML 时,一些字符将被转义,例如"将变为 " 并且 < 将变为 <。

我猜真正想要在第一个节点中作为文本输入的是 34",在 XML 序列化形式中是 34"

关于objective-c - 编辑 NSXMLDocument 而不转义特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7327301/

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