我正在使用类 XMLReader 从 URL 中解析一些 XML。XML有时被成功解析,有时我得到:
错误域 = NSXMLParserErrorDomain 代码 = 4“操作无法完成。(NSXMLParserErrorDomain 错误 4。)”
解析通常在我第一次运行它时成功,在更改某些内容之后,然后它会失败,直到我更改其他内容。例如,在下面的代码中,我尝试将 [parser release] 行注释掉,并且解析成功。然后我再次运行它并返回错误代码 4。
我每次都记录相同的输入数据,成功或失败。
任何想法这里出了什么问题?如果有帮助,我可以粘贴更多代码,但我已将错误隔离在 NSXMLParser 解析方法(在下面的代码中调用)中,因为它总是接收相同的数据。
谢谢!
编辑:我知道错误代码 4 是一个空文档错误。但我知道我的 NSData 不是空的。所以这里发生了其他事情
- (NSDictionary *)objectWithData:(NSData *)data
{
//data always makes it here, the same data gets logged regardless of parse success
//NSLog(@"%@",data);
// Clear out any old data
[dictionaryStack release];
[textInProgress release];
dictionaryStack = [[NSMutableArray alloc] init];
textInProgress = [[NSMutableString alloc] init];
// Initialize the stack with a fresh dictionary
[dictionaryStack addObject:[NSMutableDictionary dictionary]];
// Parse the XML
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
parser.delegate = self;
[parser setShouldResolveExternalEntities:NO];
BOOL success = [parser parse];
[parser release];
// Return the stack's root dictionary on success
if (success)
{
NSDictionary *resultDict = [dictionaryStack objectAtIndex:0];
return resultDict;
}
return nil;
}