Как ограничить разбор xml в iphone - PullRequest
0 голосов
/ 08 февраля 2010

Я новичок в разработке для iphone. Я хочу проанализировать URL-адрес изображения из xml-файла и отобразить его в канале RSS. Существует три URL-адреса изображения, но я хочу получить и отобразить только один URL-адрес.

<entry>
<id>xxxxx</id>
<title>xxx xxxx xxxx</title>
<content>xxxxxxxxxxx</content>
<media:group>
<media:thumbnail url="http://tiger.jpg"/>
<media:thumbnail url="http://lion.jpg"/>
<media:thumbnail url="http://elephan.jpg"/>
</media:group>
</entry>

для разбора

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{            
currentElement = [elementName copy];
if ([elementName isEqualToString:@"entry"]) {
    entry = [[NSMutableDictionary alloc] init];
    currentTitle = [[NSMutableString alloc] init];
    currentDate = [[NSMutableString alloc] init];
    NSLog(@"inside image1 ");
}else if([elementName isEqualToString:@"media:thumbnail"])
    {
        NSString* myUrl = [NSString stringWithString:[attributeDict objectForKey:@"url"]];

}   

}.

Я хочу получить только изображение тигра. Пожалуйста, помогите мне. Спасибо.

1 Ответ

1 голос
/ 08 февраля 2010

В этом экземпляре perticular вы можете установить переменную класса вместо текущего локального myUrl, и как только вы получите в нем значение. В приведенном ниже коде предполагается, что вы никогда не инициализируете myURL где-либо еще.

if (myURL == nil)
    myUrl = [attributeDict objectForKey:@"url"];

Однако это будет работать так, как вы ожидаете, если вам всегда нужен первый миниатюрный URL. Если у вас нет какой-либо гарантии (которую вы не упомянули), что вы всегда будете хотеть первый URL, тогда на самом деле вы ничего не сможете сделать, чтобы отследить случаи, когда вам не нужен первый URL, поскольку все теги URL-адресов миниатюр и атрибуты такие же, за исключением URL.

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