Я пытаюсь проанализировать RSS-поток Stack Overflow по конкретному вопросу:
https://stackoverflow.com/feeds/question/2110875
Для этого я использую библиотеку TouchXML. Кажется, проблема в следующем коде:
CXMLDocument *parser = [[CXMLDocument alloc] initWithData:sourceData options:0 error:nil];
NSArray *allEntries = [parser nodesForXPath:@"//entry" error:nil];
NSLog(@"Found entries: %d",[allEntries count]); //Returns 0
Оператор NSLog должен возвращать количество всех записей в ленте. В этом случае это должно быть '3', проблема в том, что он возвращает 0.
Я обнаружил, что этот кусок кода работает:
CXMLDocument *preParser = [[CXMLDocument alloc] initWithData:sourceData options:0 error:nil];
NSString *sourceStringUTF8 = [preParser XMLString];
[preParser release];
CXMLDocument *parser = [[CXMLDocument alloc] initWithData:[sourceStringUTF8 dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil];
NSArray *allEntries = [parser nodesForXPath:@"//entry" error:nil];
NSLog(@"Found entries: %d",[allEntries count]); //Returns 3, which is ok
Но использование этого может показаться хакерским (возможно, так и есть) и привносит несколько других случайных ошибок.
Насколько я знаю, выражение Xpath правильное. Я проверил это, используя эту страницу.
Может кто-нибудь помочь мне с этой проблемой или указать мне правильное направление.
Спасибо.