0

在我的

- (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
}
4

3 回答 3

3

您可以使用[parser abortParsing],但请注意,这适用于 XML 错误,而不是“我不想要此数据”的情况,并且parser:parseErrorOcurred:根据我的经验,可能会导致您的方法被调用几次。

于 2012-07-13T17:05:04.450 回答
1

调用 [parser abortParsing] 从当前点取消解析。

于 2012-07-13T17:06:47.553 回答
1

请注意,iOS 6.0 中有一个错误,abortParsing 将取消解析器,但不会调用 parser:parseErrorOccurred 并且不会设置“parserError”。

于 2012-10-09T08:48:01.747 回答