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 = @”“;), как видете никаких хаков нет и нет никаких табуляций с переводами строк!!!
</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:@"item"]) // Это условие открытия новой строки данных
{
NSLog(@"[parser] start new item parse");
NSMutableDictionary * newItem = [[NSMutableDictionary alloc] init];
self.item = newItem;
[newItem release];
}
}
— (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if ([elementName isEqualToString:@"item"]) {
[self updateElement: self.item];
[data addObject: item]; // текущий элемент вставляем в набор данных как новую строку
} else {
self.currentElement = @""; // для того чтобы не нацеплять после окончания строки данных символов!
}
}
— (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>а нельзя было выложить исходный код целиком? Что-бы видно было наглядно а то как то непонятно
</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. Кстати, строчку лучше всего очищать с помощью:
</p>
<p>NSString * st = [bugLine stringByTrimmingCharactersInSet:[NSCharacterSet 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>Спасибо, что вернулись!!!
</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>Ура Шеф вернулся:-)
</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. Да, это приложение мало юзабельно, но благодаря этому каждый может взять его за основу и улучшить, написав свой вариант программы.
</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 читалка для айфона? Глупо.
</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 :)
Давно ждал возрождения
</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>Наконец-то статьи пошли) Уря!!!!
</p>