NSXML Parser: блок Cdata не проходит через NSString Return - PullRequest
0 голосов
/ 05 марта 2012

У меня проблема с приложением ios rss reader.

Я загружаю RSS-ленту из feedburner, и большая часть этих данных прекрасно работает в приложении как есть, в любом случае, кроме блока Cdata.После некоторого поиска в Google я придумал то, что вы видите ниже.Предполагается, что он извлекает cdata, перемещает его в строку nsstring, удаляет HTML и возвращает строку.

Проблема в том, что "(void) parser" работает нормально, а "(NSString) stringbystrippinghtml" - нет.Каждый раз, когда я запускаю его, он удаляет все данные, он даже не возвращает мое значение «NSlog Return S» как Null.На данный момент я не уверен, что делать.

Есть идеи?

- (void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock{
// /3816612/nsstring-initwithdata-vozvraschaet-nol
NSString *cData = [[NSString alloc] initWithData:CDATABlock 
                                         encoding:NSUTF8StringEncoding];
// NSLog(@"CDATA PARSER: %@", cData);
// self.currentItem.story = cData;
[self stringByStrippingHTML:cData]; 
}

-(NSString *) stringByStrippingHTML:(NSString *)cData {
// http://stackoverflow.com/questions/277055/remove-html-tags-from-an-nsstring-on-the-iphone
// NSLog(@"CDATA PARSER: %@", cData);
NSRange r;
NSString *s = cData;
NSLog(@"Beginning S Value: %@", s);
while ((r = [s rangeOfString:@"<[^>]+>" options:NSRegularExpressionSearch]).location != NSNotFound)
    s = [s stringByReplacingCharactersInRange:r withString:@""];
return s; 
NSLog(@"Returned S Value: %@", s);
self.currentItem.story = s;
}

Спасибо

...