0

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];
}

当我遇到错误时,如何从解析器中提取原始数据stringdata

4

1 回答 1

0

如果您以后需要使用这些指针,那么您有责任存储指向这些对象的指针,而不是解析器。

解析器永远不会知道字符串,因为它永远不会传递给它。如果解析器保留数据的指针,它也会非常低效。

于 2013-08-06T18:27:03.513 回答