NSXMLParser将string与Unicode字符分开

我正在使用NSXMLParser从以下xml代码中获取以下string(sqrt(2 x)^(7/6)x(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> 

但是输出string被foundCharacters函数分成两个单独的string,它返回以下结果(使用NSLog):

2011-11-11 18:29:46.0​​05 Wolfram APItesting[35959:f803] sqrt(2 x)^(7/6)2011-11-11 18:29:46.005 Wolfram APItesting[35959:f803]× (7/6)/(4/9)

parsing代码如下所示:

 -(void)parser:(NSXMLParser *) parser foundCharacters:(NSString *)string{ if (elementFound) { [string canBeConvertedToEncoding:NSASCIIStringEncoding]; NSLog(@"%@", string); } 

}

所以我的问题是为什么输出string被分成两个单独的string?

我不知道为什么它在这种情况下被分割,但一般来说,你不应该期望你从-parser:foundCharacters:获得的数据-parser:foundCharacters:一次返回。 相反,您应该将您从该方法获得的字符累加到一个string中。 然后,当parsing器委托被通知在-parser:didEndElement:...收到了结束标记时,您可以执行一些-parser:didEndElement:...

unicode字符可能是也可能不是你的数据被分割的原因,但是不pipe它是否对你的代码都不重要。