在我的中
- (void)parser:(NSXMLParser *)parser
didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict {
// ...
}
我检查我的一个XML属性是否等于我存储在plist中的值。如果不是,那么我希望它能正常执行并获得最新信息。如果它是相同的值,尽管我不想浪费再次获取所有数据的处理时间。所以,如果我有下面这样的代码,如果值相同,我如何终止解析过程?
if (lastUpdated == [attributeDict valueForKey:@"last_updated"]) {
// Terminate the xml parsing because data is up to date
}
您可以使用[parser abortParsing]
,但请注意,这适用于XML错误,而不是"我不想要这些数据"的情况,根据我的经验,这可能会导致您的parser:parseErrorOcurred:
方法被调用几次。
调用〔parser abortParsing〕取消当前点的解析。
请注意,iOS 6.0中有一个错误,abortParsing将取消解析器,但不会调用解析器:parseErrorOccurred,也不会设置"parserError"。