Iphone 如何从XML中获取值
我想在我的项目中使用谷歌天气api。我挣扎了很久。以获取当前温度。城市、湿度、星期几等 我成功地点击了网址。但我不知道在foundCharacter方法中获取值的具体操作 谢谢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
- (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:用于报告
元素。因为字符串可能只是整个字符的一部分
对于当前元素的内容,应将其附加到当前
字符的累积,直到元素发生变化
详情如下:,
,