0

多数のタグとサブタグもXML形式で解析する必要がありますが、表示するデータを解析およびフェッチするときに、どのようにしてスムーズにすることができますか?

解析する適切な方法を提案してください。

4

1 に答える 1

5

//NSXMLParserを使用します

NSXMLParser *parser = [[NSXMLParser alloc]initWithContentsOfURL:[NSURL URLWithString:@"YOUR_URL"]];
[parser setDelegate:self];
[parser parse];

//以下はデータを取得するデリゲートです

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

if([elementName isEqualToString:@"forecast_conditions"]){
    getData = YES; // getData is a bool which is NO initialy
}

if(getData)
{
    if([elementName isEqualToString:@"day_of_week"])
        NSLog(@"%@",[attributeDict objectForKey:@"data"]);

    if([elementName isEqualToString:@"low"])
        NSLog(@"%@",[attributeDict objectForKey:@"data"]);

    if([elementName isEqualToString:@"high"])
        NSLog(@"%@",[attributeDict objectForKey:@"data"]);

    if([elementName isEqualToString:@"icon"])
        NSLog(@"%@",[attributeDict objectForKey:@"data"]);

    if([elementName isEqualToString:@"condition"])
        NSLog(@"%@",[attributeDict objectForKey:@"data"]);
     }
}

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

    }

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

        if([elementName isEqualToString:@"forecast_conditions"]){
           getData = NO;
       }

   }
于 2012-05-30T10:03:54.643 に答える