Pergunta

Eu sou novo no desenvolvimento do iPhone. Desejo analisar um URL de imagem de um arquivo XML e exibi -lo em um feed RSS. Há três URL de imagem, mas quero recuperar apenas um URL e exibi -lo.

<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>
<entry>
<id>xxxxx</id>
<title>xxx xxxx xxxx</title>
<content>xxxxxxxxxxx</content>
<media:group>
<media:thumbnail url="http://parrot.jpg"/>
<media:thumbnail url="http://peacock.jpg"/>
<media:thumbnail url="http://sparrow.jpg"/>
</media:group>
</entry>

para analisá -lo

- (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"])
{
if(myUrl==nil){
    NSString* myUrl = [NSString stringWithString:[attributeDict objectForKey:@"url"]];
}
}   

}.

Eu quero recuperar apenas a imagem do tigre e do papagaio. Mas eu recebo tigre duas vezes. Por favor, me ajude.

Foi útil?

Solução

Quando você começa a analisar o seu entry Redefinição do elemento myUrl variável para nulo - então você analisará a "mídia: miniatura" uma vez para cada elemento de 'entrada'

Outras dicas

Basta manter uma bandeira em seu delegado de analisador que você redefiniu quando vê <media:group>. Então toda vez que você vê um <media:thumbnail> você fica. Então toda vez que você obtém um <media:thumbnail>, verifique se o sinalizador foi definido. Caso contrário, este é o primeiro, então você pega os dados e define o sinalizador. Quando você vê o próximo <media:thumbnail> Você o ignora porque a bandeira foi definida.

No seu caso, myUrl é a bandeira. Então, basta redefini -lo para nil todos os vínculos que você vê o <media:group>.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top