Я всегда стараюсь избегать NSXMLParser на основе обратного вызова (SAX) в пользу парсеров DOM, которые создают модель дерева DOM для вас. Я считаю, что с парсерами DOM гораздо проще справиться.
Мой любимый парсер GDataXML (разработанный Google). Это очень надежный и простой в использовании. Он состоит только из 2 файлов (и библиотеки libxml2), но очень мощный.
Это избавляет вас от поиска методов ваших делегатов и интереса, правильно ли вы следовали своей структуре XML и правильно извлекли свой объект.
Отображение XML-документа в дерево объектов Objective-C может быть выполнено так коротко, как показано ниже:
NSData *xmlData = [[NSMutableData alloc] initWithContentsOfFile:filePath];
NSError *error;
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData
options:0 error:&error];
if (doc != nil)NSLog(@"%@", doc.rootElement);
См. Это очень популярное руководство по синтаксическому анализу XML для iPhone, где объясняется GDataXML:
http://www.raywenderlich.com/725/how-to-read-and-write-xml-documents-with-gdataxml
Надеюсь, это упростит вашу жизнь с отслеживанием и анализом XML-данных.