Dav*_*own 1 xml cocoa objective-c nsxml
我看到还有其他与此相关的问题,但没有使用NSXML.
所以,我正在使用NSXML从头开始构建一个XML文档,当我创建一个带字符串值的NSXMLNode时,该字符串中的所有"<"字符都替换为"<" 当我输出节点,或将其保存到文件.
例:
NSXMLNode *description = [NSXMLNode elementWithName:@"description"
stringValue:@"<![CDATA[Some Description</a>]]>"];
Run Code Online (Sandbox Code Playgroud)
然后当我这样做
NSLog(@"description: %@", description);
Run Code Online (Sandbox Code Playgroud)
我得到节点,所有'<'字符都替换为"<".但是,当我这样做
NSLog(@"description string value: %@", [description stringValue]);
Run Code Online (Sandbox Code Playgroud)
我得到正确的字符串输出.这个XML文档将保存为谷歌地球的KML文件,谷歌地球在发现"<"时给我一个错误 令牌.知道如何让NSXML输出'<'?我正在使用OSX 10.6和XCode 3.2顺便说一句.
有一个特殊选项标志用于指示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>
Run Code Online (Sandbox Code Playgroud)
要获得具有完整的尖括号的字符串:
NSString *output = [description XMLString];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1199 次 |
最近记录: |