0

NSXMLParser を使用してデータを解析しています。解析されたデータを取得できました。しかし、addObject を使用して NSMutableArray に追加すると、配列は空になります。最新の Xcode バージョンを使用しています。誰かが私を助けてくれませんか。

私が取り組んでいる配列はidentificationTypes1です

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

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

    if ([elementName isEqualToString:@"Book"]) {

        if ([elementName isEqualToString:@"title"]) {

        self.identificationTypes1 =[[NSMutableArray alloc]init];

        }

    }

}

-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{

    if (!currentElementValue) {
        currentElementValue =[[NSMutableString alloc]initWithString:string];

    }
    else {
        [currentElementValue appendString:string];

    }


}

-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{

    if ([elementName isEqualToString:@"Books"]) {
        NSLog(@"Count is %@",[identificationTypes1 count]);

        return;
    }
    if ([elementName isEqualToString:@"Book"]) {

    }
    if ([elementName isEqualToString:@"title"]) {
        NSLog(@"Curre value is %@",currentElementValue);
        [self.identificationTypes1 addObject:currentElementValue];


    }

   currentElementValue = nil;

}
4

2 に答える 2

0

didStartElement のように要素をネストすることはできません。パーサーはそれを許可しません。タイトルを単独で取り出して再テストします。条件付きでアクセスされる新しい変数を作成する必要があります。

于 2015-01-07T01:25:47.880 に答える