如何在 Objective-c 中使用 NSXMLParser 保持换行符?

How to keep line break with NSXMLParser in Objective-c?

提问人:user3745888 提问时间:11/18/2016 更新时间:11/18/2016 访问量:88

问:

我正在解析以 json 形式接收的文本,当 NSXMLParser 的函数解析器接收到 NSString 时,有时,如果结束词是最后一个词,则下次加入下一个词,这是不正确的,因为是独立的词。

例如,在文本中:

嗨,这是一个关于如何使用 NSXMLParser 解析文本的问题,我 需要解决这个问题。

首先,函数解析器接收一行文本:

“嗨,这是一个关于如何使用 NSXMLParser 解析文本的问题,我”

一切都是正确的,这正确地附加了文本,但随后收到这一行:“需要解决这个问题。并拆分文本,添加下一个“I”,不带换行符:

“嗨,这是一个关于如何使用NSXMLParser解析文本的问题,我需要解决这个问题。”

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
  ///Processing the text value of the current element
  NSCharacterSet *characterSet = [NSCharacterSet whitespaceAndNewlineCharacterSet];
  NSString *text = [string stringByTrimmingCharactersInSet: characterSet];
  [_selfText appendString:text]; //Here append the string without line break
}

这就是功能,我该如何解决这个问题?

objective-c json xml-解析 nsxmlparser

评论


答:

0赞 rmaddy 11/18/2016 #1

您发布的代码故意从您从解析器获取的每个文本块中剥离空格(包括换行符),然后您的问题会询问如何阻止这种情况发生。

简单。停止打电话,你有你的解决方案。在错误的位置使用它。只需将文本附加在那里,不做任何其他操作。stringByTrimmingCharactersInSetfoundCharacters

您可能希望从最终文本值中删除空格和换行符。没关系。调用 after it has completed completed 的最终值。这可能需要在委托方法中完成。stringByTrimmingCharactersInSet_selfTextdidEndElement