0

xmlを解析しようとしていますが、xmlフィードに空のノードがあるとアプリがクラッシュします。これの理由は何でしょうか?

私のxmlを編集 すると次のようになります

<Sponsors>
    <Sponsor>
        <Name>name...</Name>
        <About>blah...blah...blah</About>
        <Website>http://test.com</Website>
        <LogoImage>someImage.jpg</LogoImage>
        <smallIcon>someImage.jpg</smallIcon>
        <Area/>
        <BannerImage/>//->>>this node is empty//
     </Sponsor>
</Sponsors>

私はこのようなNSXMLパーサーを使用しています。

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
if(nil != self.currentsponsorElement){
    [self.currentsponsorElement appendString:string];
}

}

4

2 に答える 2

1

これを試して:-

didStartElement 内で次のコードを使用します:-

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

    if ([elementName isEqualToString:@"Sponsor"]) 
    {   
        if(!soapResults)
        {
            soapResults = [[NSMutableString alloc] init]; //declared in .h
        }
        recordResults = YES;
    }
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSMutableString *)string {

    if (string != nil) {
        [results setString:@""];
        [results appendString: string];
        NSLog(@"foundResults: %@",results);
    }

}
于 2012-07-02T09:51:36.823 に答える
0

あなたのコードを見ずに、私はあなたに一般的な答えを与えることしかできません - あなたのコードは "parser:foundCharacters:" メソッドの値を "期待" しているようです。コードを調べて、見つかった文字が実際にゼロの場合に何が起こるかを確認してください。try-catch ブロックを使用し、考えられるすべてのシナリオを処理して、まだ考えていないことが原因でコードがクラッシュしないようにします。

于 2012-07-02T09:50:34.717 に答える