Обработка RSS-тэгов с NSXMLParser для iPhone - PullRequest
1 голос
/ 23 января 2009

Я нашел следующий код для разбора через RSS, но, похоже, он не учитывает вложенные элементы:

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{     
    NSLog(@"ended element: %@", elementName);
    if ([elementName isEqualToString:@"item"]) {
        // save values to an item, then store that item into the array...
        [item setObject:currentTitle forKey:@"title"];
        [item setObject:currentLink forKey:@"link"];
        [item setObject:currentSummary forKey:@"summary"];
        [item setObject:currentDate forKey:@"date"];
        [item setObject:currentImage forKey:@"media:thumbnail"];

Используется RSS:

    <item><title>Knife robberies and burglaries up</title>
<description>The number of robberies carried out at knife-point has increased sharply and burglaries are also up, latest crime figures indicate</description>
<link>http://news.bbc.co.uk/go/rss/-/1/hi/uk/7844455.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/1/hi/uk/7844455.stm</guid>
<pubDate>Thu, 22 Jan 2009 13:02:03 GMT</pubDate><category>UK</category>
<media:thumbnail width="66" height="49" url="http://newsimg.bbc.co.uk/media/images/45400000/jpg/_45400861_policegeneric_pa.jpg"/>
</item>

Мне нужно извлечь элемент "url" из тега "media".

Спасибо Martin

Ответы [ 3 ]

5 голосов
/ 23 января 2009

Вам нужно получить атрибуты (включая URL) при запуске элемента:

parser:didStartElement:namespaceURI:qualifiedName:attributes:
0 голосов
/ 15 мая 2010

Я только что выпустил открытый исходный код RSS / Atom Parser для iPhone и, надеюсь, он может пригодиться.

Я бы тоже хотел услышать ваши мысли об этом!

0 голосов
/ 24 января 2009

Как указал Август, вам придется использовать didStartElement, чтобы получить атрибуты тега. Атрибуты возвращаются в виде словаря с именами атрибутов в качестве ключей и значениями атрибутов в качестве значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...