2010-02-15 18 views
2

Je suis nouveau sur le développement iphone. Je veux analyser une URL d'image à partir d'un fichier xml et l'afficher dans un flux RSS.Il y a trois URL d'image, mais je veux récupérer une seule URL et l'afficher.comment limiter l'analyse dans l'iphone?

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

pour l'analyser

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

}. 

Je veux récupérer uniquement le tigre et le perroquet image.But je reçois tigre twice.Please aide-moi out.Thanks.

Répondre

1

Lorsque vous commencez à l'analyse de votre élément entry reset variable de myUrl à zéro - donc vous analyser « les médias: miniature » une fois pour chaque élément « entrée »

+0

Merci. Cela fonctionne très bien .. – Warrior

2

Il suffit de garder un drapeau dans votre délégué de l'analyseur que vous remis à zéro lorsque vous voir <media:group>. Ensuite, chaque fois que vous voyez un <media:thumbnail> vous obtenez. Ensuite, chaque fois que vous obtenez un <media:thumbnail>, vérifiez si le drapeau a été défini. Si ce n'est pas le cas, c'est le premier, alors vous prenez les données et définissez le drapeau. Quand vous voyez le prochain <media:thumbnail> vous l'ignorez parce que le drapeau a été placé. Dans votre cas, myUrl est le drapeau. Il suffit donc de réinitialiser à zéro toutes les cravates que vous voyez le <media:group>.

+0

Merci.Il fonctionne très bien .. – Warrior