estoy analizar un RSS feed con NSXMLParser y está funcionando muy bien para el título y otras cadenas, pero uno de los elementos es un eso de imagen comoUsando NSXMLParser con CDATA
<!CDATA <a href="http:image..etc>
¿Cómo añado que como mi imagen de la celda en mi vista de tabla? ¿Lo definiría como un tipo de imagen?
Esto es lo que estoy usando para hacer mi análisis:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
//NSLog(@"found this element: %@", elementName);
currentElement = [elementName copy];
if ([elementName isEqualToString:@"item"]) {
// clear out our story item caches...
item = [[NSMutableDictionary alloc] init];
currentTitle = [[NSMutableString alloc] init];
currentDate = [ [NSMutableString alloc] init];
currentSummary = [[NSMutableString alloc] init];
currentLink = [[NSMutableString alloc] init];
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
//NSLog(@"ended element: %@", elementName);
if ([elementName isEqualToString:@"item"]) {
// save values to an item, then store that item into the array...
[item setObject:currentTitle forKey:@"title"];
[item setObject:currentLink forKey:@"link"];
[item setObject:currentSummary forKey:@"description"];
[item setObject:currentDate forKey:@"date"];
[stories addObject:[item copy]];
NSLog(@"adding story: %@", currentTitle);
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
//NSLog(@"found characters: %@", string);
// save the characters for the current item...
if ([currentElement isEqualToString:@"title"]) {
[currentTitle appendString:string];
} else if ([currentElement isEqualToString:@"link"]) {
[currentLink appendString:string];
} else if ([currentElement isEqualToString:@"description"]) {
[currentSummary appendString:string];
} else if ([currentElement isEqualToString:@"pubDate"]) {
[currentDate appendString:string];
}
}
Sí, hay una URL de la imagen en ese país. ¿Cómo puedo extraer una URL de imagen usando NSXMLParser? – Xcoder
Eche un vistazo a la cadena dentro de la sección CDATA. Si es siempre válido xml, encienda otra instancia de NSXMLParser en * esa * cadena. Si no es XML válido, tendrá que hacer Something Else ™, por ejemplo, encontrar la etiqueta manualmente. – Justicle
CMSes como Wordpress tienen la descripción en etiquetas CDATA. Es probable que se le pida a un codificador de Iphone que muestre el texto descriptivo en la parte del lector de RSS de su aplicación, tal como lo hacen todos los lectores de RSS. La respuesta de GabrielN es la solución. –