我试过这个:
GDataXMLElement * body = [GDataXMLNode elementWithName:@"body"];
[body addChild:[GDataXMLNode elementWithName:@"request" stringValue:@"<![CDATA[ <hello> ]]>"]];
NSLog(@"%@",[body XMLString]);
Run Code Online (Sandbox Code Playgroud)
它输出:
<body> <request> < ;![CDATA[< ;hello> ; ]]> ;< /request> </ body`>
但希望它是这样的:
<body>> <request<![CDATA [<hello>]]> </ request >< /body>
我怎么能告诉解析器GDataXMLNode应该是CDATA类?
您是否尝试使用:
[[GDataXMLElement alloc] initWithXMLString:"<![CDATA[ .... ]]>"]
Run Code Online (Sandbox Code Playgroud)
根据源代码,将其直接解析为 XML:
const char *utf8Str = [str UTF8String];
xmlDocPtr doc = xmlReadMemory(utf8Str, (int)strlen(utf8Str), NULL, // URL
NULL, // encoding
kGDataXMLParseOptions);
Run Code Online (Sandbox Code Playgroud)
而elementWithName只是逐字抓取字符串:
+ (GDataXMLElement *)elementWithName:(NSString *)name {
xmlNodePtr theNewNode = xmlNewNode(NULL, // namespace
GDataGetXMLString(name));
if (theNewNode) {
// succeeded
return [self nodeConsumingXMLNode:theNewNode];
}
return nil;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1374 次 |
| 最近记录: |