1

次の XMLParser がありますが、実行しようとすると正しく動作しません。

- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
    if ([elementname isEqualToString:@"results"])
    {
        currentJob = [SearchResult alloc];
    }

}

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


    if ([elementname isEqualToString:@"jobTitle"])
    {
        currentJob.jobTitle = currentNodeContent;
    }

    if ([elementname isEqualToString:@"location"])
    {
        currentJob.shortAddress = currentNodeContent;
    }

    if ([elementname isEqualToString:@"companyName"])
    {
        currentJob.employer = currentNodeContent;
    }

    if ([elementname isEqualToString:@"results"])
    {
        [self.jobs addObject:currentJob];
        currentJob = nil;
        currentNodeContent = nil;
    }
}

そして、ここに私のfoundCharakterメソッドがあります:

- (void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    currentNodeContent = (NSMutableString *) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}

出力は最初からではなく、文字列の途中から始まります...私には理解できません。

私は何を間違っていますか?どうすればxmlを適切に解析できますか?

どんな助けでも大歓迎です。

事前にThx

4

2 に答える 2

4

私は次のコードを使用し、現在動作しています:

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

     if(!elementContentString) 
     elementContentString = [[NSMutableString alloc] initWithString:string]; 
     else 
    [elementContentString appendString:string];
}
于 2012-09-27T12:39:42.787 に答える
0

あなたのコードに問題はないと思います。私の最後では問題なく動作しています。xml を取得するために Twitter API を使用していますが、適切な出力が得られます。

于 2012-09-24T13:04:08.673 に答える