首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSXML将"<“替换为"%lt;”

NSXML将"<“替换为"%lt;”
EN

Stack Overflow用户
提问于 2009-11-29 03:26:10
回答 1查看 1.2K关注 0票数 1

我看到还有其他与此相关的问题,但都没有使用NSXML。

因此,我正在使用NSXML从头开始构建一个XML文档,当我使用字符串值创建一个NSXMLNode时,当我输出节点或将其保存到文件中时,该字符串中的所有"<“字符都被替换为"& lt;”。

示例:

代码语言:javascript
复制
 NSXMLNode *description = [NSXMLNode elementWithName:@"description"
                               stringValue:@"<![CDATA[Some Description</a>]]>"];

然后当我这样做的时候

代码语言:javascript
复制
 NSLog(@"description: %@", description);

我得到了用"& lt;“替换了所有”<“字符的节点。然而,当我这样做的时候

代码语言:javascript
复制
 NSLog(@"description string value: %@", [description stringValue]);

我得到了正确的字符串输出。这个XML文档将被保存为google earth的KML文件,当google earth找到"& lt;“标记时,它会给我一个错误。你知道怎么让NSXML只输出'<‘吗?我使用的是osx10.6和XCode 3.2btw。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-29 04:30:52

有一个特殊的选项标志用于指示CDATA,这将在这里有所帮助。诀窍是让cocoa为你编写<![CDATA[]]书本:

代码语言:javascript
复制
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>

要获取包含完整尖括号的字符串:

代码语言:javascript
复制
NSString *output = [description XMLString];
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1813503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档