Iphone 如何从XML中获取值

Iphone 如何从XML中获取值,iphone,ios,delegates,xml-parsing,nsxmlparser,Iphone,Ios,Delegates,Xml Parsing,Nsxmlparser,我想在我的项目中使用谷歌天气api。我挣扎了很久。以获取当前温度。城市、湿度、星期几等 我成功地点击了网址。但我不知道在foundCharacter方法中获取值的具体操作 谢谢 - (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attribu

我想在我的项目中使用谷歌天气api。我挣扎了很久。以获取当前温度。城市、湿度、星期几等

我成功地点击了网址。但我不知道在foundCharacter方法中获取值的具体操作

谢谢

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

 - (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
    if ([elementname isEqualToString:@"city"]) 
     {

     }
 }
请检查代码:

- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname       namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
    if ([elementname isEqualToString:@"weather"]) 
    {
            currentTweet = [Tweet alloc];
    }
    else if ([elementname isEqualToString:@"city"]) 
    {
          currentTweet.city = [attributeDict valueForKey:@"city"]
    }
}

- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
 {
    if ([elementname isEqualToString:@"weather"]) 
     {
           NSLog("Current City: %@",currentTweet.city);
     }
 }
对于这种类型的xml,您不希望使用
解析器:foundCharacters:

引用NSXMLPareser参考指南中有关
foundCharacters
方法的内容:

由解析器对象发送以向其委托提供字符串 表示当前元素的全部或部分字符

解析器对象可以向委托发送多个 parser:foundCharacters:用于报告 元素。因为字符串可能只是整个字符的一部分 对于当前元素的内容,应将其附加到当前 字符的累积,直到元素发生变化

详情如下:, ,请检查代码:

- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname       namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
    if ([elementname isEqualToString:@"weather"]) 
    {
            currentTweet = [Tweet alloc];
    }
    else if ([elementname isEqualToString:@"city"]) 
    {
          currentTweet.city = [attributeDict valueForKey:@"city"]
    }
}

- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
 {
    if ([elementname isEqualToString:@"weather"]) 
     {
           NSLog("Current City: %@",currentTweet.city);
     }
 }
对于这种类型的xml,您不希望使用
解析器:foundCharacters:

引用NSXMLPareser参考指南中有关
foundCharacters
方法的内容:

由解析器对象发送以向其委托提供字符串 表示当前元素的全部或部分字符

解析器对象可以向委托发送多个 parser:foundCharacters:用于报告 元素。因为字符串可能只是整个字符的一部分 对于当前元素的内容,应将其附加到当前 字符的累积,直到元素发生变化

详情如下:, ,