我正在使用NSXMLParser从以下xml代码中获取以下字符串(sqrt(2 x)^(7/6)×(7/6)/(4/9)):
<pod title='Input'
scanner='Identity'
id='Input'
position='100'
error='false'
numsubpods='1'>
<subpod title=''>
<plaintext>sqrt(2 x)^(7/6)×(7/6)/(4/9)</plaintext>
</subpod>
</pod>
但是,通过foundCharacters函数将输出字符串分成两个单独的字符串,该函数返回以下结果(使用NSLog):
2011-11-11 18:29:46.005 Wolfram API-test [35959:f803] sqrt(2 x)^(7/6) 2011-11-11 18:29:46.005 Wolfram API测试[35959:f803]×(7/6)/(4/9)
解析的代码如下所示:
-(void)parser:(NSXMLParser *) parser foundCharacters:(NSString *)string{
if (elementFound) {
[string canBeConvertedToEncoding:NSASCIIStringEncoding];
NSLog(@"%@", string);
}
}
所以我的问题是为什么输出字符串被分成两个单独的字符串?
答案 0 :(得分:0)
我不确定为什么它在这种情况下会被分割,但一般来说,你不应该期望从-parser:foundCharacters:
得到的数据一次全部返回。相反,您应该在字符串中累积从该方法获得的字符。然后,当您通知解析器代理已在-parser:didEndElement:...
unicode字符可能是或可能不是您的数据被拆分的原因,但它是否对您的代码无关紧要。