Pregunta

Soy nuevo en el desarrollo del iPhone .I quieren analizar un URL de la imagen desde un archivo XML y mostrarlo en un RSS feed.There son tres URL de la imagen, pero quiero recuperar sólo una url y lo mostrará.

<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 analizarlo

- (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"]];
}
}   

}.

Quiero recuperar sólo el tigre y el loro image.But me sale tigre twice.Please me ayude out.Thanks.

¿Fue útil?

Solución

Al iniciar el análisis de su elemento entry restablecer la variable myUrl a cero - por lo que analizar "los medios de comunicación: miniatura" una vez por cada elemento de 'entrada'

Otros consejos

Basta con mantener una bandera en su delegado analizador que se restablece cuando se ve <media:group>. Entonces, cada vez que vea un <media:thumbnail> que se obtiene. Entonces, cada vez que reciba una <media:thumbnail>, compruebe si el indicador se ha establecido. Si no, entonces este es el primero de ellos, por lo que tomar los datos y establece el indicador. Cuando vea la siguiente <media:thumbnail> usted lo ignora porque el indicador se ha establecido.

En su caso, myUrl es la bandera. Así que simplemente restablecerla a cero todos los lazos que vea la <media:group>.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top