I am receiving memory leaks from my methods using [TBXML](http://www.tbxml.co.uk/TBXML/TBXML_Free.html) to parse an XML file. 

It is giving me NSCFString 'Leaked Objects' with. When I look at the stack trace, its last call is using the TBXML method textForElement; used to obtain the string in the element.

If I click on the trace it brings me to this method from a TBXML class file:

```
+ (NSString*) textForElement:(TBXMLElement*)aXMLElement {
    if (nil == aXMLElement->text) 
        return @"";
    return [NSString stringWithCString:&aXMLElement->text[0] encoding:NSUTF8StringEncoding];

```

Here is one of the methods using textForElement:

```
- (NSMutableArray *)parseNewsXML
{

NSString *newsURL = @"http://www.millersville.edu/news/rss.php";

NSMutableArray *newsArray = [[NSMutableArray alloc] init];

EventArticleObject *currentArticle = [[EventArticleObject alloc] init];

tbxml = [TBXML tbxmlWithURL:[NSURL URLWithString:newsURL]];
rootXMLElement = tbxml.rootXMLElement;

if(rootXMLElement)
{
    node_channel = [TBXML childElementNamed:@"channel" parentElement:rootXMLElement];

    if(node_channel)
    {
        node_item = [TBXML childElementNamed:@"item" parentElement:node_channel];

        while(node_item)
        {
            node_traverse = [TBXML childElementNamed:@"title" parentElement:node_item];
            NSString *title = [TBXML textForElement:node_traverse];
            title = [title stringByReplacingOccurrencesOfString:@"&quot;" withString:@"\""];

            [currentArticle setTitle:title];
            node_traverse = [TBXML childElementNamed:@"link" parentElement:node_item];
            NSString *link = [TBXML textForElement:node_traverse];
            [currentArticle setLink:link];
            [currentArticle setDate:nil];

            [newsArray addObject:currentArticle];
            node_item = node_item -> nextSibling;
        }
    }
}
[currentArticle release];
return newsArray;
}

```

Here is a second method also receiving the same leaks:

```
- (void)parseMuAlertXML
{

time_t unixTime = (time_t) [[NSDate date] timeIntervalSince1970];

NSURL *url = [NSURL URLWithString:@"http://www.millersville.edu/alert/alert.xml"];

tbxml = [TBXML tbxmlWithURL:url];
rootXMLElement = tbxml.rootXMLElement;

if(rootXMLElement)
{
    node_alert = [TBXML childElementNamed:@"alert" parentElement:rootXMLElement];

    if(node_alert)
    {
        node_traverse = [TBXML childElementNamed:@"startdate" parentElement:node_alert];
        NSInteger startString =  [[TBXML textForElement:node_traverse] intValue];
        time_t startTime = startString;

        node_traverse = [TBXML childElementNamed:@"enddate" parentElement:node_alert];
        NSInteger endString =  [[TBXML textForElement:node_traverse] intValue];
        time_t endTime = endString;

        node_traverse = [TBXML childElementNamed:@"type" parentElement:node_alert];
        alertType = [[TBXML textForElement:node_traverse] retain];

        node_message = [TBXML childElementNamed:@"message" parentElement:node_alert];

        if(node_message)
        {
            node_traverse = [TBXML childElementNamed:@"p" parentElement:node_message];
            alertMessage = [TBXML textForElement:node_traverse];
            alertMessage = [[alertMessage stringByReplacingOccurrencesOfString:@"&#160;" withString:@" "] retain];
        }

        if((unixTime >= startTime) && (unixTime <= endTime))
        {
            [alertButton setHidden:NO];
            [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]];
        } else {
            [alertButton setHidden:YES];
            [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]];
        }
    }
}
}

```

Does anyone see whats going on wrong in there? 
Thanks.