我使用以下代码创建了NSXMLParser
对象:
- (void) foo:(NSMutableString *)string
{
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:[string dataUsingEncoding:NSUTF8StringEncoding]];
[parser setDelegate:self];
[parser parse];
}
有时我在运行解析器后会遇到错误(在调用错误时调用委托方法):
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
{
LOGE(@"XML parser error in line:%ld column:%ld. Retrying..", [parser lineNumber], [parser columnNumber]);
[parser abortParsing];
[parser parse];
}
如果出现错误,如何从解析器中提取原始string
或data
?
答案 0 :(得分:0)
如果您以后需要使用这些指针,那么您有责任存储指向这些对象的指针,而不是解析器。
解析器永远不会知道字符串,因为它永远不会传递给它。如果解析器保持数据指针,那么它的效率也非常低。