comment limiter l'analyse syntaxique dans l'iPhone?
-
20-09-2019 - |
Question
Je suis nouveau au développement iphone .Je souhaite analyser une URL d'image à partir d'un fichier xml et l'afficher dans un flux feed.There sont trois URL de l'image, mais je veux récupérer une seule URL et l'afficher.
<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.
La solution
Lorsque vous démarrez votre analyse élément entry
reset variable de myUrl
à zéro - donc vous analyser « les médias: miniature » une fois pour chaque élément « entrée »
Autres conseils
Il suffit de garder un drapeau dans votre délégué de l'analyseur que vous remis à zéro lorsque vous voyez <media:group>
. Ensuite, chaque fois que vous voyez un <media:thumbnail>
que vous obtenez. Ensuite, chaque fois que vous obtenez un <media:thumbnail>
, vérifier si le drapeau a été fixé. Sinon, c'est le premier, vous prenez les données et définissez l'indicateur. Quand vous voyez la prochaine <media:thumbnail>
vous l'ignorer parce que le drapeau a été défini.
Dans votre cas, myUrl
est le drapeau. Donc, il suffit de réinitialiser à zéro tous vous ligoter voir le <media:group>
.