NSXMLParserの問題タグが空になる

これは私のXMLファイルの例です

<head>
    some title here...
    some info here
        bla bla bla
        
        the full text here
        
    
</head>

私はこのようにNSXMLParserDelegateメソッドを使用しています:

    -(void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
    if (qName) {
        elementName = qName;
    }

   //If it's the start of the XML, remove everything we've stored so far
    if([elementName isEqualToString:@"head"])
    {
        [self emptyDataContext];
        return;
    }
    else if([elementName isEqualToString:@"bgimage"])
    {
enter code here
    }
   //Create a new Category
    else if ([elementName isEqualToString:@"cat"]) 
    {


//array catching the values 
    }

    else if ([elementName isEqualToString:@"info"])
    {
            [add addObject:currentElementValue];
    } 
    else if([elementName isEqualToString:@"summary"])
    {

    }
    else if([elementName isEqualToString:@"full"])
    {

     }
    else if([elementName isEqualToString:@"quote"])
    {
    }

次の関数を使用して現在の文字列からすべての値をキャッチする配列を持っている場合:

    -(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    if (!currentElementValue) {
       //init the ad hoc string with the value     
        currentElementValue = [[[NSMutableString alloc] initWithString:string]autorelease];
    } else {
       //append value to the ad hoc string    
        [currentElementValue setString:string]; //appendString:string];
    }
   NSLog(@"Processing value for : %@", string);

}

何らかの理由で "cat"と "info"が空文字列になっています... 私はそれを把握するためにいくつかのNSloggingを使い、次のようなものを使っています:

2011-12-19 00:40:07.557 LAO [39912:bc03]処理値:

2011-12-19 00:40:07.557 LAO [39912:bc03]処理値:「some info title ...」

2011-12-19 00:40:07.558 LAO [39912:bc03]処理値:

2011-12-19 00:40:07.559 LAO [39912:bc03]処理値:

2011-12-19 00:40:07.560 LAO [39912:bc03]処理値:「some info title ...」

2011-12-19 00:40:07.560 LAO [39912:bc03]処理値:「要約連絡先はここに....」 2011-12-19 00:40:07.560 LAO [39912:bc03]要約 2011-12-19 00:40:07.561 LAO [39912:bc03]処理値:

???? 助けてください

0
与えられたXMLは正しいものではありません。 XMLに属性XMLまたはタグXMLが含まれている必要があります。
追加された 著者 mAc,

1 答え

投稿したXMLの例が有効なXMLではありません。ここには有効なXML文書の例があります。

<head>
    
        <title>some title here...</title>
        some info here...
        bla bla bla
        
            the full text here
        
    
</head>

1つのXMLタグにテキストとタグをスローすることはできません。例として、これはうまくいきません:

Hello, World
    Hello
    World

これを有効にするには、次のようなことができます:


    Hello, World
    Hello
    World

1
追加された
ありがとう、私はそう思ったように...私はそれを書いていない:)
追加された 著者 Janub,