0

このURLから xml データを解析したい

私はこのようなコードを書いていました:-

NSString *escapedURL = @"http://www.google.com/ig/api?weather=%22Dr%20Vikram%20Sarabhai%20Marg%20Panchavati%20Society%20Gulabai%20Tekra%20Ahmedabad%20Gujarat%20India%22&hl=hr";        
            xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:[NSURL URLWithString:escapedURL]];;
            [xmlParser setDelegate:self];
            [xmlParser setShouldProcessNamespaces:NO];
            [xmlParser setShouldReportNamespacePrefixes:NO];
            [xmlParser setShouldResolveExternalEntities:NO];
            [xmlParser parse];

- (void)parserDidStartDocument:(NSXMLParser *)parser 
{
    NSLog(@"Document started", nil);
    currentElement = nil;
}

- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError 
{
    NSLog(@"Error: %@", [parseError localizedDescription]);
}

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

    [currentElement release];
    currentElement = [elementName copy];

    currentName = [[NSMutableString alloc] init];

    //For temeprature
    if ([currentElement isEqualToString:@"forecast_information"])
    {


    }
    else if ([currentElement isEqualToString:@"current_conditions"])
    {



    }
    else if ([currentElement isEqualToString:@"temp_c"])
    {
        //NSLog(@"attributeDict==>%@",[attributeDict objectForKey:@"data"]);
        LblTemperature.text=[NSString stringWithFormat:@"Ahmedabad %@°",[attributeDict objectForKey:@"data"]];
    }



}

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



     if ([elementName isEqualToString:@"temp_c"])
    {   
        //NSLog(@"temp_c: %@", currentName);

    }




}        

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

    if ([currentElement isEqualToString:@"temp_c"])
    {
        [currentName appendString:string];
        //NSLog(@"==>%@",string);
    }


}

- (void)parserDidEndDocument:(NSXMLParser *)parser 
{
    NSLog(@"Document finished");

}

しかし、この解析では temp_c のデータを取得できません。私が取得している要素名は次のとおりです。

私を助けてください..

4

1 に答える 1

1

XPathQueryを使用してXMLを解析できます。それはあなたの人生をはるかに楽にします。XPathQueryクラスとチュートリアルへのリンクもあります。

http://cocoawithlove.com/2008/10/using-libxml2-for-parsing-and-xpath.html

それを見て、それを使って作業する意思があり、それでも何も理解できない場合は、コメントしてください。

于 2012-04-13T12:31:28.580 に答える