NSXMLParser将字符串与unicode字符分开

时间:2011-11-11 17:33:20

标签: objective-c ios nsxmlparser

我正在使用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.0​​05 Wolfram API-test [35959:f803] sqrt(2 x)^(7/6)   2011-11-11 18:29:46.0​​05 Wolfram API测试[35959:f803]×(7/6)/(4/9)

解析的代码如下所示:

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

}

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

1 个答案:

答案 0 :(得分:0)

我不确定为什么它在这种情况下会被分割,但一般来说,你不应该期望从-parser:foundCharacters:得到的数据一次全部返回。相反,您应该在字符串中累积从该方法获得的字符。然后,当您通知解析器代理已在-parser:didEndElement:...

中收到结束标记时,您可以执行某些操作

unicode字符可能是或可能不是您的数据被拆分的原因,但它是否对您的代码无关紧要。