Parse des fichier xml contenant des balises sans et avec attributs
Bonjour à tous,
Mon probléme est le suivant je parse 2 types de fichiers xml
Dans l'un j'ai la balise enclosure qui contient des attributs comme celle la:<enclosure url="http://www.lequipe.fr/Medias/Formule1/201108/270x197/casey-stoner-a-oublie-sa-frustration-des-qualif-il-a-signe-d.jpg" type="image/jpeg" length="9920" />
et dans l'autre la balise enclosure est sans attributs comme ceci
<enclosure>
<url>
http://i.eurosport.fr/2011/08/13/749200 ... 58-238.jpg
</url>
<type>image/jpeg</type>
</enclosure>
Au moment du parse pour récupérer l'url de l'image dans les deux types j'utilise:
Et pour s'assurer que l'url de l'image est récupérée dans l'autre fichier( dans lequel la balise enclosure ne contient pas d'attributs) je fais ceci
Pour le premier type de fichier les images sont bien parsées et affichées par la suite mais l'application crache dés que je parse le fichier du 2 éme type à cause de
Avez vous une proposition pour régler ceci? apparament qu'il faut ajoter une condition dans le if indiquant que le fichier est du 2 éme type(enclosure ne contient pas d'attributs) Mais laquelle?
Merci beaucoup pour toute aide
Mon probléme est le suivant je parse 2 types de fichiers xml
Dans l'un j'ai la balise enclosure qui contient des attributs comme celle la:<enclosure url="http://www.lequipe.fr/Medias/Formule1/201108/270x197/casey-stoner-a-oublie-sa-frustration-des-qualif-il-a-signe-d.jpg" type="image/jpeg" length="9920" />
et dans l'autre la balise enclosure est sans attributs comme ceci
<enclosure>
<url>
http://i.eurosport.fr/2011/08/13/749200 ... 58-238.jpg
</url>
<type>image/jpeg</type>
</enclosure>
Au moment du parse pour récupérer l'url de l'image dans les deux types j'utilise:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{<br /> currentElement = [elementName copy];<br /> <br /> if ([elementName isEqualToString:@"item"]) {<br /> <br /> item = [[NSMutableDictionary alloc] init];<br /> self.currentTitle = [[NSMutableString alloc] init];<br /> self.currentSummary = [[NSMutableString alloc] init];<br /> self.currentLink = [[NSMutableString alloc] init];<br /> self.currentIm = [[NSMutableString alloc] init];<br /> self.currentEn = [[NSMutableString alloc] init];<br /> <br /> self.currentPodcastLink = [[NSMutableString alloc] init];<br /> }<br /> <br /> if ([currentElement isEqualToString:@"enclosure"]) {<br /> [currentEn appendString:[attributeDict objectForKey:@"url"]];<br /> }<br /> }<br />
Et pour s'assurer que l'url de l'image est récupérée dans l'autre fichier( dans lequel la balise enclosure ne contient pas d'attributs) je fais ceci
<br /> - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{<br /> <br /> //NSLog(@"Nous somme dans foundCharacters L'élément courant est:%@",currentElement);<br /> if ([currentElement isEqualToString:@"title"]) {<br /> <br /> [self.currentTitle appendString:string];<br /> <br /> } else if ([currentElement isEqualToString:@"link"]) {<br /> <br /> [self.currentLink appendString:string];<br /> <br /> } else if ([currentElement isEqualToString:@"description"]) {<br /> <br /> <br /> [self.currentSummary appendString:string];<br /> <br /> }<br /> else if ([currentElement isEqualToString:@"image"]) {<br /> val=0;<br /> }<br /> <br /> else if ([currentElement isEqualToString:@"enclosure"]) {<br /> val=1; <br /> }<br /> else if ([currentElement isEqualToString:@"url"]) {<br /> if(val==1)<br /> [self.currentIm appendString:string];<br /> <br /> }<br /> <br />}<br />
Pour le premier type de fichier les images sont bien parsées et affichées par la suite mais l'application crache dés que je parse le fichier du 2 éme type à cause de
if ([currentElement isEqualToString:@"enclosure"]) {<br />currentEn appendString:[attributeDict objectForKey:@"url"]];<br /> }
Avez vous une proposition pour régler ceci? apparament qu'il faut ajoter une condition dans le if indiquant que le fichier est du 2 éme type(enclosure ne contient pas d'attributs) Mais laquelle?
Merci beaucoup pour toute aide
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses