我看到还有其他与此相关的问题,但都没有使用NSXML。
因此,我正在使用NSXML从头开始构建一个XML文档,当我使用字符串值创建一个NSXMLNode时,当我输出节点或将其保存到文件中时,该字符串中的所有"<“字符都被替换为"& lt;”。
示例:
NSXMLNode *description = [NSXMLNode elementWithName:@"description"
stringValue:@"<![CDATA[Some Description</a>]]>"];然后当我这样做的时候
NSLog(@"description: %@", description);我得到了用"& lt;“替换了所有”<“字符的节点。然而,当我这样做的时候
NSLog(@"description string value: %@", [description stringValue]);我得到了正确的字符串输出。这个XML文档将被保存为google earth的KML文件,当google earth找到"& lt;“标记时,它会给我一个错误。你知道怎么让NSXML只输出'<‘吗?我使用的是osx10.6和XCode 3.2btw。
发布于 2009-11-29 04:30:52
有一个特殊的选项标志用于指示CDATA,这将在这里有所帮助。诀窍是让cocoa为你编写<![CDATA[和]]书本:
NSXMLNode *cdata = [[[NSXMLNode alloc] initWithKind:NSXMLTextKind
options:NSXMLNodeIsCDATA] autorelease];
[cdata setStringValue:@"Some CDATA Description"];
NSXMLElement *description = [NSXMLNode elementWithName:@"description"];
[description addChild:cdata];
NSLog(@"description: %@", description);
// yields: <description><![CDATA[Some CDATA Description]]></description>要获取包含完整尖括号的字符串:
NSString *output = [description XMLString];https://stackoverflow.com/questions/1813503
复制相似问题