我试过这个:
GDataXMLElement * body = [GDataXMLNode elementWithName:@"body"];
[body addChild:[GDataXMLNode elementWithName:@"request" stringValue:@"<![CDATA[ <hello> ]]>"]];
NSLog(@"%@",[body XMLString]);
Run Code Online (Sandbox Code Playgroud)
它输出:
<body
> <request
> &
LT ;![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 次 |
最近记录: |