Когда заканчивается анализ XML в приложении для iPhone? - PullRequest
1 голос
/ 25 февраля 2011

Я использую обычный анализатор XML и храню значения XML в словаре.

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName 
    namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
    if([elementName isEqualToString:@"CountryId"]){
        currentTweet.content = currentNodeContent;
        [data setObject:currentTweet.content forKey:@"CountryId"];
        //NSLog(@"currentNode is %@",currentNodeContent);
    }
    if([elementName isEqualToString:@"CountryName"]){
        currentTweet.createdAt = currentNodeContent;
        [data setObject:currentTweet.createdAt forKey:@"CountryName"];
        //NSLog(@"currentNode is countnry Name %@",currentNodeContent);
    }

    /*if([elementName isEqualToString:@"Country"]){
        [tweets addObject:currentTweet];

        tweet *current       = [tweets objectAtIndex:0];

        NSLog(@"value of current is %@",current.content);
        NSLog(@"value of Country tweet is %@",current.createdAt);
        [currentTweet release];
         currentTweet = nil;
        [currentNodeContent release];
         currentNodeContent = nil;
    }*/
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    currentNodeContent = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}

Я хочу знать о каком-либо методе, который сообщает мне, когда данные XML полностью считываются и сохраняются в массиве. Я использую эти методы с методами веб-делегатов, потому что я прочитал данные из мыла, и, видимо, завершил загрузку, я передал XML в XML-парсер следующим образом:

-(void) connectionDidFinishLoading:(NSURLConnection *) connection {
    NSLog(@"DONE. Received Bytes: %d", [webData length]);
    NSLog(@"recived data %@",webData);
    NSString *theXML = [[NSString alloc] 
                initWithBytes: [webData mutableBytes] 
                length:[webData length] 
                encoding:NSUTF8StringEncoding];
    //---shows the XML---
    NSLog(@"%@",theXML);
    [theXML release];    


    if( xmlParser )
    {
        [xmlParser release];
    }

    xmlParser = [[NSXMLParser alloc] initWithData: webData];
    //[xmlParser setDelegate: self];
    [xmlParser setShouldResolveExternalEntities: YES];
    [xmlParser parse];

    [connection release];
    [webData release];
}

1 Ответ

0 голосов
/ 25 февраля 2011

Как насчет parserDidEndDocument:

...