http://pyobjc.ru/2009/06/26/sozdanie-prostoj-programmy-dlya-chteniya-rss-lent/pyobjc.ru comments on Создание простой программы для чтения RSS-лент2010-06-03T11:31:15ZВасилийLbICbIYAlDtaptapVitkovskySosniukSof. BixConstantineSof. Bixdjango-atompubhttp://pyobjc.ru/2009/06/26/sozdanie-prostoj-programmy-dlya-chteniya-rss-lent/#c454Comment on Создание простой программы для чтения RSS-лент by Sof. Bix2010-06-03T11:31:15Z2010-06-03T11:30:31ZSof. Bix<p>Вот мой вариант, он достаточно прост (вся фишка в склейке текста в parser:foundCharacters: и в очистке self.currentElement = @&#8221;&#8220;;), как видете никаких хаков нет и нет никаких табуляций с переводами&nbsp;строк!!! </p> <pre><code>- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { // Определяем новый тег (поле) self.currentElement = elementName; if ([elementName isEqualToString:@&quot;item&quot;]) // Это условие открытия новой строки данных { NSLog(@&quot;[parser] start new item parse&quot;); NSMutableDictionary * newItem = [[NSMutableDictionary alloc] init]; self.item = newItem; [newItem release]; } } &mdash; (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { if ([elementName isEqualToString:@&quot;item&quot;]) { [self updateElement: self.item]; [data addObject: item]; // текущий элемент вставляем в набор данных как новую строку } else { self.currentElement = @&quot;&quot;; // для того чтобы не нацеплять после окончания строки данных символов! } } &mdash; (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { if (!item) // это возможно при чтении атрибутов в начале RSS данных return; // определяем выходной тег и если он зарегестрирован в потомке то добавляем как поле текущей строки данных: NSString * tagName = [registredTagNames objectForKey: self.currentElement]; if (tagName){ NSMutableString * currentContent = [item objectForKey: tagName]; if (currentContent) // существующее поле дополняем, не найденое добавляем! [currentContent appendString:string]; else{ NSMutableString * newString = [[NSMutableString alloc] initWithString: string]; [item setObject: newString forKey: tagName ]; [newString release]; } } } </code></pre>http://pyobjc.ru/2009/06/26/sozdanie-prostoj-programmy-dlya-chteniya-rss-lent/#c451Comment on Создание простой программы для чтения RSS-лент by Constantine2010-06-02T23:35:08Z2010-06-02T23:35:08ZConstantine<p>а нельзя было выложить исходный код целиком? Что-бы видно было наглядно а то как то&nbsp;непонятно </p>http://pyobjc.ru/2009/06/26/sozdanie-prostoj-programmy-dlya-chteniya-rss-lent/#c381Comment on Создание простой программы для чтения RSS-лент by Sof. Bix2009-07-07T10:48:35Z2009-07-07T10:40:05ZSof. Bix<p>А вы не задумывались откуда всякая фигня берется в storyLink? На мой взгляд на лицо серьезная бага, которая может выйти за пределы [NSCharacterSet whitespaceAndNewlineCharacterSet]. Она тоже у меня была, могу подсказать как исправить, но гораздо приятнее самому дойти, это поможет понять суть работы NSXMLParser. Кстати, строчку лучше всего очищать с&nbsp;помощью: </p> <p>NSString * st = [bugLine stringByTrimmingCharactersInSet:[NSCharacterSet&nbsp;whitespaceAndNewlineCharacterSet]]; </p>http://pyobjc.ru/2009/06/26/sozdanie-prostoj-programmy-dlya-chteniya-rss-lent/#c375Comment on Создание простой программы для чтения RSS-лент by Sosniuk2009-06-27T21:15:52Z2009-06-27T21:15:52ZSosniuk<p>Спасибо, что&nbsp;вернулись!!! </p>http://pyobjc.ru/2009/06/26/sozdanie-prostoj-programmy-dlya-chteniya-rss-lent/#c374Comment on Создание простой программы для чтения RSS-лент by Vitkovsky2009-06-27T01:57:53Z2009-06-27T01:57:53ZVitkovsky<p>Ура Шеф&nbsp;вернулся:-) </p>http://pyobjc.ru/2009/06/26/sozdanie-prostoj-programmy-dlya-chteniya-rss-lent/#c373Comment on Создание простой программы для чтения RSS-лент by taptap2009-06-26T15:38:20Z2009-06-26T15:38:20Ztaptap<p>Относитесь к этому проще, не воспринимайте статью в прямом смысле. Этот пост лишь еще один урок, благодаря которому вы учитесь на конкретном примере, а не на тухлом и неинтересном рисовании foo и bar. Да, это приложение мало юзабельно, но благодаря этому каждый может взять его за основу и улучшить, написав свой вариант&nbsp;программы. </p>http://pyobjc.ru/2009/06/26/sozdanie-prostoj-programmy-dlya-chteniya-rss-lent/#c372Comment on Создание простой программы для чтения RSS-лент by AlD2009-06-26T14:59:01Z2009-06-26T14:59:01ZAlD<p>Нее, в сафари статьи открывать это ужасно неудобно. Зачем тогда все это? Когда есть Apple созданная онлайн rss читалка для айфона?&nbsp;Глупо. </p>http://pyobjc.ru/2009/06/26/sozdanie-prostoj-programmy-dlya-chteniya-rss-lent/#c371Comment on Создание простой программы для чтения RSS-лент by LbICbIY2009-06-26T14:41:51Z2009-06-26T14:41:51ZLbICbIY<p>+1 :) Давно ждал&nbsp;возрождения </p>http://pyobjc.ru/2009/06/26/sozdanie-prostoj-programmy-dlya-chteniya-rss-lent/#c370Comment on Создание простой программы для чтения RSS-лент by Василий2009-06-26T13:32:44Z2009-06-26T13:32:44ZВасилий<p>Наконец-то статьи пошли)&nbsp;Уря!!!! </p>