Użyłem zalecanej linii kodu:

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSMutableString *)string
{
// save the characters for the current item...
if ( [currentElement isEqualToString:@"title"]) 
{
    currentNodeContent = [[NSMutableString alloc]init];
    if ([[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] length] > 0) {
        [currentNodeContent appendString:[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
      }
    NSLog(@"currentnode content...%@",currentNodeContent);    
    [blogtitle addObject:currentNodeContent];
    NSLog(@"%@",blogtitle);
 }

T nadal otrzymuję pustą wartość w tablicy. Myślę, że inicjalizacja ciągu „currentNodeContent” powinna być gdzie indziej.

1
Ketan Shinde 12 sierpień 2011, 13:33
Po prostu nie dodawaj pustych ciągów do swojej tablicy. Sprawdź długość przed dodaniem.
 – 
Evgeny Shurakov
12 sierpień 2011, 13:40

2 odpowiedzi

Najlepsza odpowiedź

Spróbuj tego

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSMutableString *)string
{
// save the characters for the current item...
if ( [currentElement isEqualToString:@"title"]) 
{
    NSString *newString = [string stringByTrimmingCharactersInSet:[NSCharacterSet    whitespaceAndNewlineCharacterSet]];
    if ([newString length] > 0) 
    {
        [blogtitle addObject:newString];
    }         

    NSLog(@"currentnode content...%@",currentNodeContent);    

    NSLog(@"%@",blogtitle);
 }
2
Ketan Shinde 12 sierpień 2011, 14:34
1
Powinieneś przechowywać przycięty sznurek, aby uniknąć podwójnego przycinania.
 – 
Georg Fritzsche
12 sierpień 2011, 13:47
Dzięki za informacje Georg, chodziło mi o sprawdzenie długości ciągu, nie pomyślałem o kodzie, doceniam twój komentarz, abym mógł poprawić swój sposób odpowiadania.., Zmodyfikowałem odpowiedź
 – 
Nithin
12 sierpień 2011, 13:51

Sprawdź i dodaj tylko niepusty ciąg z na przykład [currentNodeContent length] > 0 w swoim NSXMLParserDelegate.

0
PeyloW 12 sierpień 2011, 13:39