iOS NSXMLParsing HTML no formado

Este es el cuerpo de mi método para analizar los enlaces de imagen "img src" de html mal formados generados por un feed RSS ... Soy consciente de que NSXML solo analiza XML, pero tengo la esperanza de que pueda tropezar en el lío para encontrar estos minúsculos enlaces de imagen de html desordenado.

Estoy tratando de recuperar SOLO el PRIMER enlace de imagen que se encuentra en el atributo src que encuentro en cada nombre de elemento llamado IMG en nsData que tiene un atributo src y luego lo guardo en una NSString * img en otra clase. Las etiquetas img no son todas iguales, por ejemplo, una instancia de nsData contendrá solo una instancia de imagen como cualquiera de estas:

<img class = "ms-rteStyle-photoCredit" src = "www.imagelinkthatineed.com"cosas que no necesito

<img alt = "" src = "www.imagelinkineedfortableimagecellpreview"cosas que no necesito

<img class = "ms-rteStyle-photoCredit" src = "www.IneedThisLink.com"mas cosas que no necesito

La única clase que parece generar salida de NSLog es la primera.

¿Cómo puedo conseguir que los métodos del analizador se ejecuten realmente?

Dado que hay una manera, ¿hay alguna manera diferente y más simple que recomiende?

#import "HtmlParser.h"
#import "ArticleItem.h"

@implementation HtmlParser
@synthesize elementArray;

- (HtmlParser *) InitHtmlByString:(NSString *)string {
//    NSString *description = [NSString string];
NSData *nsData = [[NSData alloc] initWithContentsOfFile:(NSString *)string];
elementArray = [[NSMutableArray alloc] init];
parser = [[NSXMLParser alloc] initWithData:nsData];
parser.delegate = self;
[parser parse];

Si I NSLog (@ "% @", nsData); en este cuerpo del método, la salida escupe el HTML sin procesar.

currentHTMLElement = [ArticleItem alloc];
return self;
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqualToString:@"img src"]) {
    currentHTMLElement = [[ArticleItem alloc] init];
}
NSLog(@"\t%@ found a %@ element", self, elementName);
}
- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if (!currentHTMLElement)
    currentHTMLElement = [[NSMutableString alloc] initWithString:string];   
NSLog(@"Processing Value: %@", currentHTMLElement);
}
- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName   
{
if ([elementName isEqualToString:@"img src"])
    {
        currentHTMLElement.img = elementName;
        [elementArray addObject:currentHTMLElement];
        currentHTMLElement = nil;
        currentNodeContent = nil;
    }
else
{
    if (currentHTMLElement !=nil && elementName != nil && ([elementName isEqualToString:@"img src"]))
    {
        [currentHTMLElement setValue:currentHTMLElement forKey:elementName];
    }
}
    currentHTMLElement = nil;
}                
@end

Gracias por tus pensamientos.

Respuestas a la pregunta(1)

Su respuesta a la pregunta